Простейший способ отключения 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);
}
Теперь у вас есть простейший способ блокировки Alt-Tab написанный без использования VxD.
Блокировка горячих клавиш продолжается пока запущено ваше приложение. Когда ваш процесс завершиться будет восстановлено стандартная функционирование комбинации горячих клавиш.
4/2/99
(DM: Примечание. Похоже все это нормально работает только на NT)