InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Disabling the Alt-Tab key combination
Отключение комбинации клавиш Alt+Tab


Dan Crea, www.codeguru.earthweb.com


Простейший способ отключения Alt+Tab - использование функции RegisterHotKey. Вызов этой функции из вашего процесса дает ему превосходство над ОС. Сообщение WM_HOTKEY, которое генерирует определенная комбинация клавиш будет перенаправлено в очередь сообщений вашего процесса. Для блокировки комбинаций клавиш просто не обрабатывайте сообщение WM_HOTKEY присланное в вашу очередь. Ниже приведен конструктор и деструктор демонстрирующие эти действия.

// Вызывайте функцию RegisterHotKey когда ваше приложение 
// захочет блокировать комбинацию ALT-TAB
// Замечание: m_nHotKeyID переменная типа int которая определяет
// ID комбинации, id комбинации определяется программно
CMainFrame::CMainFrame()
{ 
  m_nHotKeyID = 100;
  BOOL m_isKeyRegistered = RegisterHotKey(GetSafeHwnd(), m_nHotKeyID, MOD_ALT, VK_TAB); 
  ASSERT(m_isKeyRegistered != FALSE);
}


//удаляем блокировку при завершении приложения CMainFrame::~CMainFrame() { BOOL m_iskeyUnregistered = UnregisterHotKey(GetSafeHwnd(), m_nHotKeyID); ASSERT(m_isKeyUnregistered != FALSE); }

Теперь у вас есть простейший способ блокировки Alt-Tab написанный без использования VxD.

Блокировка горячих клавиш продолжается пока запущено ваше приложение. Когда ваш процесс завершиться будет восстановлено стандартная функционирование комбинации горячих клавиш.

4/2/99

(DM: Примечание. Похоже все это нормально работает только на NT)


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua