Русская документация для фриланесеров
Главная arrow C++ arrow Отключение комбинации клавиш Alt+Tab  
08.01.2009 г.
Главное меню
Главная
Поиск
PHP
.NET
Java
Ruby
C++
Delphi
Другие языки
Базы данных
Безопасность
Сети
ОС
Мобильные
Теория дизайна
WEB
Разное
Админцентр



Отключение комбинации клавиш Alt+Tab Печать E-mail
Автор Westry   
25.03.2008 г.
Простейший способ отключения 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)

 

 

Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , www.codeguru.earthweb.com

 
« Пред.   След. »
Webdesign by Webmedie.dk Webdesign by Webmedie.dk