| 
| 
 | Вопрос # 6 348/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!
 Возникла проблема при эмуляции нажатия функциональных клавиш F1-F12 (возможно и других, но не проверял). При регистрации одной горячей клавиши(без модификатора) - все работает прекрасно, но если используется модификатор (Alt, Control, Shift  или их сочетания) - отсылается некорректный код. Подозреваю что дело в том что отсылается в момент нажатия, а не отпускания, т.е. на момент посылки модификатор остается в нажатом состоянии. Как можно решить данную проблему?
 Цель: корректно эмулировать нажатие клавиш при использовании горячей клавиши с модификатором.
 Приложение:Переключить в обычный режим  procedure WMHotkey ( var msg: TWMHotkey ); message WM_HOTKEY; Var  procedure TfrmMult.FormCreate(Sender: TObject);begin HK:= 9999; RegisterHotKey(Handle, HK, 0, 45);  //Insert HK1:= 1; RegisterHotKey(Handle, HK1, MOD_ALT, 49); // Alt + 1 HK2:= 2; RegisterHotKey(Handle, HK2, 0, 49);          // 1 End; procedure TfrmMult.WMHotKey(var Msg: TWMHotKey);Begin      begin   PostMessage(hnd, wm_keydown, 112, 0);   sleep(10);   PostMessage(hnd, wm_keyup, 112, 0);   end;     begin   PostMessage(hnd, wm_keydown, 112, 0);   sleep(10);   PostMessage(hnd, wm_keyup, 112, 0);   end;End;
Примечание #1 (5 января 2013, 22:55): Пишу в XE3 
 
|  |   Вопрос задал: Ins (статус: 1-ый класс)Вопрос отправлен: 5 января 2013, 21:19
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 14 января 2013, 21:21; участников в обсуждении: 1. 
|   | Ins (статус: 1-ый класс), 8 января 2013, 23:37 [#1]:В решение нашлось, но оно мне не нравится. вопрос оставляю открытым. 
 while MyKeyState(vk_menu)=True do
Begin
sleep(100);
Application.ProcessMessages;
End; |  
|   | Ins (статус: 1-ый класс), 14 января 2013, 21:21 [#2]:Данное решение является лишь частичным, работает только если окно программы активно. SetForegroundWindow не решает проблему( |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |