![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| StayAtHome |
|
|||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: 1 Всего: 16 |
Нужно послать контролу сообщение о нажатии комбинации клавиш. Надо что-то вроде WM_KEYDOWN пользовать. Вроде ничего сложного: Perform(WM_KEYDOWN, VK_Insert, 0). Но, это работает только если "нажимается" одиночная клавиша. А если мне надо послать нажатие комбинации клавиш, к примеру Ctrl+Insert? Читал справку, но не совсем понял. Надо передавать то-то в WParam, но не получается.
Поделитесь куском кода, плз. Желательно универсального (чтоб можно было передать и Ctrl+Alt+Shift+Enter к примеру) |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
один МАЛЕНЬКИЙ
когда ты вешеш хот-кей ты его вешаеш на какую клавишу? на Ctrl+Alt+Shift+Enter или может всетаки на Enter с соответствующими клавишами? или когда ты ловиш нажатия клавиш ты что ловиш? тоже, по-моему, Enter соответственно и посылать нужно так же: шлеш клавишу а с помощью SetKeyboardState() устанавливаеш состояние функциональных клавиш -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| StayAtHome |
|
|||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: 1 Всего: 16 |
_hunter
Логично. А все-таки кусок кода можно? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
дык в чем еще проблема?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
BYTE keyboardState[255];
keyboardState[0x41] = 1;//A keyboardState[0x10] = 1;//SHIFT key SetKeyboardState(keyboardState); в результате должно получится Shift+A (но не проверял ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Регистрация горячих клавиш в системе
RegisterHotKey(Handle, atom, MOD_ALT or MOD_CONTROL, VK_Insert and 13); Не уверен только в подчёркнутом, не пробовал. При завершении приложения должен уничтожить регистрацию: UnregisterHotKey(Handle, atom); atom: Integer ,он не должен лежать в диапазоне $C000 ДО $FFFF и лежать в диапазоне от 0 до $BFFF. Или можно задать уникальный индификатор с помощью функциуй GlobalAddAtom(PChar(s)); где s - строка с адресом вызываемоо приложения. Пример обработчика: .... private { Private declarations } procedure WMHotKey(var a:TWMHotKey); message WM_HOTKEY; .... procedure TForm1.WMHotKey(var a:TWMHotKey); begin if (a.HotKey=25) then begin // здесь вызываем приложение end; end; Работает даже если приложение не активно |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
Guest это я
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
и каким боком обработка нажатия клавиши относится к нажатию клавиши?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |