Форум: "WinAPI";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
ВнизHot Keys Найти похожие ветки
← →
Katrin (2003-10-06 11:57) [0]Возникла проблема - у меня есть приложение, о котором я знаю только то, какими горячими клавишами оно управляется, ни коммандной строки, ничего. необходимо включить его функциональность в мой проект. Подскажите, каким образом можно управлять приложением по hot keys?
← →
Игорь Шевченко (2003-10-06 14:08) [1]keydb_event, SendInput
← →
Katrin (2003-10-06 14:26) [2]Я очень мало имела дело с WinAPI, вы бы не могли привести пример того, как послать например Alt-F1 чужому приложению. Буду оч благодарна
← →
Игорь Шевченко (2003-10-06 14:45) [3]Например, так:
procedure TForm1.Button1Click(Sender: TObject);
begin
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_F1, 0, 0, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
end;
Это будет равносильно тому, что на клавиатуре нажата комбинация клавиш Alt+F1
← →
Katrin (2003-10-06 15:12) [4]На это сообщение отреагируют все активные приложения. А как послать определенному окну? Причем желательно чтобы было это окно невидимым для юзера или хотя бы свернутым.
А в вашем примере нажатие Alt это где описано
← →
Игорь Шевченко (2003-10-06 15:36) [5]Если приложение зарегистрировало горячую клавишу, то все зависимости от того, активно оно или нет, оно это нажатие получит. Например, Ctrl+Shift+Esc. Боюсь, что мы с вами по-разному понимаем понятие "горячая клавиша".
> А как послать определенному окну? Причем желательно чтобы
> было это окно невидимым для юзера или хотя бы свернутым.
Насколько я помню, в вопросе было написано про некое приложение, о котором ничего не известно ? Откуда взялись окна, да еще и невидимые ? :)
> А в вашем примере нажатие Alt это где описано
VK_MENU это и есть клавиша Alt
← →
Katrin (2003-10-06 15:53) [6]Активное приложение - ну как, если у меня открыто два IE, я нажму F1 то отреагирует только активное приложение. Может быть мы действительно по-разному понимаем hot key.
Окна взялись из того, что приложение-то я буду запускать (как называется файл я знаю :)). Очень бы хотелось скрыть само окно приложения от пользователя и показывать ему только выдаваемые по нажатию горячей клавиши диалоги открытия, сохранения файлов и т.п. Но это не так важно - пусть даже будет свернутым. Однако комбинация клавиш, типа Alt-F1 может в принципе активизировать и другое приложение, а мне надо чтобы она адресовалась только открытому мною приложению.
← →
Игорь Шевченко (2003-10-06 16:12) [7]Если вам известно имя и класс нужного окна вашего приложения, то будь оно свернутым или невидимым, можно найти его Hwnd и послать ему сообщения (WM_KEYDOWN, WM_KEYUP) функцией PostMessage.
← →
Katrin (2003-10-06 16:39) [8]Большое спасибо
Если я не ошибаюсь, то PostMessage необходимо вызывать для одновременного нажатия Alt-F1 два раза
← →
Игорь Шевченко (2003-10-06 16:43) [9]Katrin © (06.10.03 16:39)
Да, на каждую кнопку (Alt(VK_MENU) и F1(VK_F1)) по своему сообщению WM_KEYDOWN и по своему WM_KEYUP - итого четыре вызова
← →
Katrin (2003-10-06 16:54) [10]ок, спасибо за помощь огромное
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c