Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.029 c
4-90165
Volly
2003-10-04 14:24
2003.11.27
Сообщения в DLL


14-90125
kovalski
2003-11-03 06:52
2003.11.27
про сотовые


8-90013
Alex210819
2003-06-26 12:39
2003.11.27
Проигрывание Файлов МР3


1-89818
Татьяна
2003-11-14 11:26
2003.11.27
TF1Book


1-89917
Zheks
2003-11-18 11:41
2003.11.27
Файловая система Виндов




   Наверх