Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Блокировка системных хоткеев


Автор: Firexel 24.2.2009, 00:21
Всем привет. Пишу программу, которая записывает порядок нажатых пользователем клавиш и потом воспроизводит. Как макрос в ворде. 
Столкнулся с такой проблемой: при записи последовательности Alt + Ctrl + Tab программа теряет фокус ввода и на экран выводится меню переключения окон. Как следствие - нажатие Tab не записывается.

Как на время записи макроса запретить системе реагировать на подобные сочетания клавиш (Alt+Tab, Alt+F4, etc)? 

Автор: Alca 24.2.2009, 10:27
Хуки. smile 

Автор: SenkraD 24.2.2009, 14:51
Firexel, зарегай свои глобальные хоткеи - они перекроют всё, кроме Ctrl+Alt+Delete,
а как боротся с ним тоже топиков много
Код

#include "stdafx.h"

int _cdecl _tmain (
    int argc, 
    TCHAR *argv[])
{           
    if (RegisterHotKey(
        NULL,
        1,
        MOD_ALT | MOD_NOREPEAT,
        0x42))  //0x42 is 'b'
    {
        _tprintf(_T("Hotkey 'ALT+b' registered, using MOD_NOREPEAT flag\n"));
    }
 
    MSG msg = {0};
    while (GetMessage(&msg, NULL, 0, 0) != 0)
    {
        if (msg.message == WM_HOTKEY)
        {
            _tprintf(_T("WM_HOTKEY received\n"));            
        }
    } 
 
    return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)