Russian Qt Forum
Ноябрь 25, 2024, 17:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Консольная программа  (Прочитано 5924 раз)
qtист
Гость
« : Сентябрь 28, 2012, 09:06 »

Как сделать, чтоб консольная программа не реагировала на нажатие ^C
Чё-то ничего не получается   Плачущий
Записан
Bepec
Гость
« Ответ #1 : Сентябрь 28, 2012, 09:22 »

А зачем?
Записан
qtист
Гость
« Ответ #2 : Сентябрь 28, 2012, 09:27 »

чтоб никто не догадался Смеющийся

а серьезно: выход будет по вводу определенного слова(так надо) - это сделано
Записан
maint
Гость
« Ответ #3 : Сентябрь 28, 2012, 09:32 »

в С и линухе это игнорирование сигнала
signal(СИГНАЛ, SIG_IGN);
В хедерах описано. По моему SIGINT
Записан
maint
Гость
« Ответ #4 : Сентябрь 28, 2012, 09:33 »

вспомнил, в винде вроде надо смотреть в сторону SetConsoleCtrlHandler
Записан
qtист
Гость
« Ответ #5 : Сентябрь 28, 2012, 09:55 »

попытался сделать:

void ctrl_c(int nsig){
   out << "привет"
}


.......
signal(SIGINT, ctrl_c);
.......


первое нажатие ^C отлавливается-печать есть,но прога напрочь зависает,
ещё раз нажали ^C - прога выходит
 Непонимающий Непонимающий
Записан
mutineer
Гость
« Ответ #6 : Сентябрь 28, 2012, 09:56 »

Ctrl+Z вроде как проигнорить нельзя, так что выйти из проги можно будет и без специально слова
Записан
Bepec
Гость
« Ответ #7 : Сентябрь 28, 2012, 09:58 »

Мораль - хреначь GUI окно и имитируй консоль Улыбающийся
Записан
qtист
Гость
« Ответ #8 : Сентябрь 28, 2012, 10:01 »

GUI нет и не будет(так надо)

сделал так:

signal(SIGINT, SIG_IGN);

прога напрочь зависает  Непонимающий


Записан
V1KT0P
Гость
« Ответ #9 : Сентябрь 28, 2012, 20:38 »

GUI нет и не будет(так надо)
сделал так:
signal(SIGINT, SIG_IGN);
прога напрочь зависает  Непонимающий
Тебе под какую ОС? На винде вот это код не позволяет заблочить повторную операцию: http://www.google.com.ua/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CCwQFjAB&url=http%3A%2F%2Fwww.opennet.ru%2Fdocs%2FRUS%2Flinux_parallel%2Fnode10.html&ei=Y-BlUP6RA4zEtAaThIHQCQ&usg=AFQjCNHraN_Y0todI_PeZoVTIFXngURfLw&sig2=HgEPtbKhGwIqyH3PoZztdQ
Я бы на твоем месте посмотрел в сторону перехвата клавиатуры.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #10 : Сентябрь 28, 2012, 23:05 »

Я бы на твоем месте посмотрел в сторону перехвата клавиатуры.
Ненадо никакого перехвата клавиатуры, как уже писали выше,  на винде надо пользовать SetConsoleCtrlHandler
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.057 секунд. Запросов: 23.