Название: Запретить Alt+TAB Отправлено: AAXEE от Февраль 12, 2011, 23:53 В программе для тестирования учащихся, нужно, чтобы во время тестирования участники не смогли переключится из окна приложения(а также не могли свернуть). Максимум что они смогут - это закрыть и следовательно закончить тест.
Развернул на весь экран showFullScreen()ом, а дальше как быть? 1)Есть идея по таймеру вытаскивать окошко на передний план, если оно вдруг не наверху. Но как это сделать? 2)Комбинации клавиш может отлавливать? Подскажите пожалуйста. Название: Re: Запретить Alt+TAB Отправлено: chu от Февраль 13, 2011, 04:28 Цитировать 2)Комбинации клавиш может отлавливать? посмотри QKeyEventНазвание: Re: Запретить Alt+TAB Отправлено: shirushizo от Февраль 13, 2011, 08:26 Мне кажется не поможет... можно переопределить у окна bool QWidget::event ( QEvent * event ) и по событию QEvent::WindowDeactivate - закрывать приложение.
Код: bool Widget::event ( QEvent * event ) Ну или делать по событию что-то более гуманное, например, выводить модальный диалог: "Вы хотите прервать тестирование?" Название: Re: Запретить Alt+TAB Отправлено: AAXEE от Февраль 14, 2011, 08:16 Благодарю, помогло.
Название: Re: Запретить Alt+TAB Отправлено: QCasper от Февраль 14, 2011, 08:36 Ну так я пошатаюсь по системе / интернету, а потом вернусь и нажму на кнопку "нет". Надо хуками блочить всякие альты и контролы на уровне апи и все дела. Щас не вспомню как именно - давно делал, но инфы по этому делу полно должно быть.
Название: Re: Запретить Alt+TAB Отправлено: ufna от Февраль 14, 2011, 10:51 Может поможет: http://www.codeproject.com/KB/winsdk/AntonioWinLock.aspx
Название: Re: Запретить Alt+TAB Отправлено: panAlexey от Февраль 14, 2011, 12:00 Может поможет: http://www.codeproject.com/KB/winsdk/AntonioWinLock.aspx Поможет. Но надо иметь ввиду, что хуки только из dll-ки работают. Создать, подстегнуть.. Название: Re: Запретить Alt+TAB Отправлено: bmw от Февраль 14, 2011, 19:52 Может поможет: http://www.codeproject.com/KB/winsdk/AntonioWinLock.aspx Поможет. Но надо иметь ввиду, что хуки только из dll-ки работают. Создать, подстегнуть.. kbhook.h Код: #include <windows.h> main.cpp Код: void LockWindow::setHook() Кусок из рабочего приложения, но я думаю, разберётесь. |