|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.06.2017, 18:47 | #1 |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
Отмена при CTRL+С закрытия консоли
Доброго времени суток.
Возникла у меня проблема с закрытием консольки при нажатии CTRL+C. Поставил ивент на нажатие: Код:
Код:
Последний раз редактировалось Tahoma; 30.06.2017 в 19:01. |
30.06.2017, 19:31 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Насколько я понимаю, если есть выделенный текст, тогда Ctrl-C текст и скопирует, т.е. сигнал посылаться не будет.
|
30.06.2017, 19:38 | #3 |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
|
01.07.2017, 03:16 | #4 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
похоже нужен SetConsoleMode.. ...ток это вопросы не по С, а по Виндовс АПИ. |
27.07.2017, 18:05 | #5 | |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
Цитата:
Спасибо, что подсказали направление. Одна проблемка, почему при SetConsoleMode(hCons, ENABLE_WINDOW_INPUT) у меня вылетает cin.getline ? Идиотский вопрос. Извиняюсь! Нафига мне cin.getline, если у меня перехватываются все нажатия Последний раз редактировалось Tahoma; 27.07.2017 в 18:11. |
|
27.07.2017, 19:16 | #6 |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
Получилось что-то вроде:
Код:
|
28.07.2017, 10:31 | #7 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
не нравится мне этот код....у вас main завершается,а поток остается...так быть не должно.
Нужно предусмотреть что-то (комбинацию клавиш) для завершения цикла потока, по окончании цикла выставить какой-то флаг (std:romise, std::conditional, std::feature, std::mutex), что поток все и можно заканчивать мейн (а мейн все это время ждет флаг) - и вот тогда все... |
28.07.2017, 18:24 | #8 | |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
Цитата:
|
|
31.07.2017, 17:47 | #9 |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
А хоткеи теперь вручную придется описывать? Я про CTRL+C/V/A....
Ну тут оказалось просто. Надо лишь прочитать буфер обмена и вывести, если есть, что выводить. А отменив CTRL+C (закрытие) стало работать как копирование. Код:
Последний раз редактировалось Tahoma; 01.08.2017 в 17:04. Причина: Нашел решение |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод EOF c консоли - это Ctrl+Z и Ctrl+M Почему? | 8Observer8 | Общие вопросы по программированию, компьютерный форум | 10 | 13.01.2023 09:33 |
Отмена закрытия программы из панели задач | Jleksern | Общие вопросы Delphi | 7 | 15.06.2013 17:32 |
Не работает отмена при добавлении записей в таблицу | Екатерина20 | БД в Delphi | 4 | 26.05.2012 17:23 |
Отмена закрытия консольного окна после завершения работы приложения | FeloS | Общие вопросы C/C++ | 21 | 25.02.2011 16:34 |
При нажатии выполнить Ctrl+F | Shouldercannon | Общие вопросы Delphi | 10 | 04.02.2010 16:05 |