Регистрации хуков на кнопки - HotKeyAdd
Регистрации хуков на кнопки - HotKeyAdd
В зависимости от версии PureBasic подключаем нужную версию Droopy Library
Пример кода:
Procedure CreateSkrinAll() OpenWindow(0, 0, 0, 100, 80, "Окно",
#PB_Window_SystemMenu |#PB_Window_ScreenCentered ) |
44 - код
кнопки PrintScreen.
3 последних аргумента - состояние кнопок
Shift, Alt и Control.
0 -
кнопка не контроллируется
1 - событие произойдёт только после нажатия
кнопки
Как узнать коды кнопок ?
Программа для получения числого соответствия кнопок:
OpenWindow(0,0,0,230,150,"", #PB_Window_SystemMenu
| #PB_Window_ScreenCentered) |
Описание функций ищем в справке библиотеки Друпии...
Пример программа в трее, перехват Ctrl+C :
Procedure.s GetSysDirectory() ;
Путь к системной папке CreatePopupMenu(0) ;
Контекстное меню для трея OpenWindow(0,0,0,200,100,"",#PB_Window_Invisible) AddSysTrayIcon(1,WindowID(0),ExtractIcon_(0,GetSysDirectory()+"\shell32.dll",4))
Repeat |
Константы нужных кнопок (Ctrl и
С) смотрим в таблице.
Пример программа в окне, перехват Ctrl+C :
OpenWindow(0,0,0,200,100,"",#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
|
Перехват нажатия кнопок при активном окне
OpenWindow(0, 296, 218, 507, 135, "Окно",
#PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If event=#WM_KEYDOWN Until event=#PB_Event_CloseWindow |
Эмуляция нажатия нопки Ctrl+C
Запустить программу, выделить любой текст на компютере и нажать кнопку A (english).
Перехват кнопок Ctrl+C расматривался раннее.
Эмуляция происходит через API keybd_event_().
Вывод текста через функцию GetClipboardText().
Enumeration
Procedure
CreateSkrinAll() OpenWindow(#Window_0, 0, 0, 100, 80, "Окно", #PB_Window_SystemMenu |#PB_Window_ScreenCentered ) HotKeysInit() ; Инициализация библиотеки
HotKeys |
Таблица констант
кнопок
Следующая таблица содержит имена символьных констант шестнадцетеричные
значения, и эквиваленты виртуальных кодов клавиш для мышки и клавиатуры
используемые системой
Коды внесены в таблицу по порядку нумерации.
Числовое значение констант получаем через Debug. ( напр. Debug #VK_SHIFT результат 16)
Символьное имя константы | Эквивалент клавиатуры или мышки |
#VK_LBUTTON | Левая кнопка мыши |
#VK_RBUTTON | Правая кнопка мыши |
#VK_CANCEL | Обработка Control-Break |
#VK_MBUTTON | Средняя кнопка мыши |
#VK_XBUTTON1 | Windows 2000: X1 кнопка мыши |
#VK_XBUTTON2 | Windows 2000: X2 кнопка мыши |
#VK_BACK | BACKSPACE клавиша |
#VK_TAB | TAB клавиша |
#VK_CLEAR | CLEAR клавиша |
#VK_RETURN | ENTER клавиша |
#VK_SHIFT | SHIFT клавиша |
#VK_CONTROL | CTRL клавиша |
#VK_MENU | ALT клавиша |
#VK_PAUSE | PAUSE клавиша |
#VK_CAPITAL | CAPS LOCK клавиша |
#VK_KANA | IME Kana режим |
#VK_HANGUEL | IME Hanguel режим |
#VK_HANGUL | IME Hangul режим |
#VK_JUNJA | IME Junja режим |
#VK_FINAL | IME final режим |
#VK_HANJA | IME Hanja режим |
#VK_KANJI | IME Kanji режим |
#VK_ESCAPE | ESC клавиша |
#VK_CONVERT | IME конвертировать |
#VK_NONCONVERT | IME не конвертировать |
#VK_ACCEPT | IME принять |
#VK_MODECHANGE | IME режим изменения запроса |
#VK_SPACE | SPACEBAR |
#VK_PRIOR | PAGE UP клавиша |
#VK_NEXT | PAGE DOWN клавиша |
#VK_END | End клавиша |
#VK_HOME | HOME клавиша |
#VK_LEFT | LEFT ARROW клавиша |
#VK_UP | UP ARROW клавиша |
#VK_RIGHT | RIGHT ARROW клавиша |
#VK_DOWN | DOWN ARROW клавиша |
#VK_SELECT | Select клавиша |
#VK_PRINT | PRINT клавиша |
#VK_EXECUTE | EXECUTE клавиша |
#VK_SNAPSHOT | PRINT SCREEN клавиша |
#VK_INSERT | INS клавиша |
#VK_DELETE | DEL клавиша |
#VK_HELP | HELP клавиша |
#VK_LWIN | Левая Windows клавиша (Microsoft® Natural® клавиатура) |
#VK_RWIN | Правая Windows клавиша (Natural клавиатура) |
#VK_APPS | Прикладная клавиша (Natural клавиатура) |
#VK_SLEEP | Спящего режима клавиша |
#VK_NUMPAD0 | Числовая клавиатура клавиша 0 |
#VK_NUMPAD1 | Числовая клавиатура клавиша 1 |
#VK_NUMPAD2 | Числовая клавиатура клавиша 2 |
#VK_NUMPAD3 | Числовая клавиатура клавиша 3 |
#VK_NUMPAD4 | Числовая клавиатура клавиша 4 |
#VK_NUMPAD5 | Числовая клавиатура клавиша 5 |
#VK_NUMPAD6 | Числовая клавиатура клавиша 6 |
#VK_NUMPAD7 | Числовая клавиатура клавиша 7 |
#VK_NUMPAD8 | Числовая клавиатура клавиша 8 |
#VK_NUMPAD9 | Числовая клавиатура клавиша 9 |
#VK_MULTIPLY | Умножить клавиша |
#VK_ADD | Добавить клавиша |
#VK_SEPARATOR | Разделитель клавиша |
#VK_SUBTRACT | Вычитания клавиша |
#VK_DECIMAL | Десятичная клавиша |
#VK_DIVIDE | Деления клавиша |
#VK_F1 | F1 клавиша |
#VK_F2 | F2 клавиша |
#VK_F3 | F3 клавиша |
#VK_F4 | F4 клавиша |
#VK_F5 | F5 клавиша |
#VK_F6 | F6 клавиша |
#VK_F7 | F7 клавиша |
#VK_F8 | F8 клавиша |
#VK_F9 | F9 клавиша |
#VK_F10 | F10 клавиша |
#VK_F11 | F11 клавиша |
#VK_F12 | F12 клавиша |
#VK_F13 | F13 клавиша |
#VK_F14 | F14 клавиша |
#VK_F15 | F15 клавиша |
#VK_F16 | F16 клавиша |
#VK_F17 | F17 клавиша |
#VK_F18 | F18 клавиша |
#VK_F19 | F19 клавиша |
#VK_F20 | F20 клавиша |
#VK_F21 | F21 клавиша |
#VK_F22 | F22 клавиша |
#VK_F23 | F23 клавиша |
#VK_F24 | F24 клавиша |
#VK_NUMLOCK | NUM LOCK клавиша |
#VK_SCROLL | SCROLL LOCK клавиша |
#VK_LSHIFT | Левый SHIFT клавиша |
#VK_RSHIFT | Правый SHIFT клавиша |
#VK_LCONTROL | Левый CONTROL клавиша |
#VK_RCONTROL | Правый CONTROL клавиша |
#VK_LMENU | Левый MENU клавиша |
#VK_RMENU | Правый MENU клавиша |
#VK_BROWSER_BACK | Windows 2000: Browser клавиша назад |
#VK_BROWSER_FORWARD | Windows 2000: Browser клавиша вперед |
#VK_BROWSER_REFRESH | Windows 2000: Browser клавиша обновить |
#VK_BROWSER_STOP | Windows 2000: Browser клавиша стоп |
#VK_BROWSER_SEARCH | Windows 2000: Browser клавиша поиск |
#VK_BROWSER_FAVORITES | Windows 2000: Browser клавиша избранное |
#VK_BROWSER_HOME | Windows 2000: Browser клавиша старт и домой |
#VK_VOLUME_MUTE | Windows 2000: Звук выключить клавиша |
#VK_VOLUME_DOWN | Windows 2000: Звук уменьшить клавиша |
#VK_VOLUME_UP | Windows 2000: Звук увеличиьть клавиша |
#VK_MEDIA_NEXT_TRACK | Windows 2000: Следующий трек клавиша |
#VK_MEDIA_PREV_TRACK | Windows 2000: Предыдущий трек клавиша |
#VK_MEDIA_STOP | Windows 2000: Media клавиша остановить |
#VK_MEDIA_PLAY_PAUSE | Windows 2000: Media клавиша воспроизвести/пауза |
#VK_LAUNCH_MAIL | Windows 2000: Почта запуск клавиша |
#VK_LAUNCH_MEDIA_SELECT | Windows 2000: Media выбрать клавиша |
#VK_LAUNCH_APP1 | Windows 2000: Запустить приложение 1 клавиша |
#VK_LAUNCH_APP2 | Windows 2000: Запустить приложение 2 клавиша |
#VK_OEM_1 | Windows 2000: Для стандартной клавиатуры US ';:' клавиша |
#VK_OEM_PLUS | Windows 2000: Для любого региона/страны '+' клавиша |
#VK_OEM_COMMA | Windows 2000: Для любого региона/страны ',' клавиша |
#VK_OEM_MINUS | Windows 2000: Для любого региона/страны '-' клавиша |
#VK_OEM_PERIOD | Windows 2000: Для любого региона/страны '.' клавиша |
#VK_OEM_2 | Windows 2000: Для стандартной клавиатуры US '/?' клавиша |
#VK_OEM_3 | Windows 2000: Для стандартной клавиатуры US '`~' клавиша |
#VK_OEM_4 | Windows 2000: Для стандартной клавиатуры US '[{' клавиша |
#VK_OEM_5 | Windows 2000: Для стандартной клавиатуры US '\|' клавиша |
#VK_OEM_6 | Windows 2000: Для стандартной клавиатуры US ']}' клавиша |
#VK_OEM_7 | Windows 2000: Для стандартной клавиатуры US 'одинарные кавычки/двойные кавычки' клавиша |
#VK_OEM_8 | |
#VK_OEM_102 | Windows 2000: Или наклонная скобка или черта влево клавиша на RT 102-клавишной клавиатуре |
#VK_PROCESSKEY | Windows 95/98, Windows NT 4.0, Windows 2000: IME PROCESS клавиша |
#VK_PACKET E7 | Windows 2000: Используется для передачи символов Unicode как будто бли нажаты клавиши.Клавиша VK_PACKET является нижним словом 32-разрядной клавиши, используется для метода не клавиатурного ввода. Для большей информации смотри ремарку в KEYBDINPUT, SendInput, WM_KEYDOWN, и WM_KEYUP |
#VK_ATTN F6 | Attn клавиша |
#VK_CRSEL | CrSel клавиша |
#VK_EXSEL | ExSel клавиша |
#VK_EREOF | Erase EOF клавиша |
#VK_PLAY | Play клавиша |
#VK_ZOOM | Zoom клавиша |
#VK_NONAME | Зарезервировано для будущего использования |
#VK_PA1 | PA1 клавиша |
#VK_OEM_CLEAR | Clear клавиша |