Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: 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 вся ветка

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
8-89999
antonyan
2003-08-01 11:42
2003.11.27
Вставка из буфера изображения формы


11-89803
alfromorel
2003-03-19 10:38
2003.11.27
Как отлавить сообщения ухода мышки с компонента


4-90166
acsoft
2003-08-18 08:02
2003.11.27
Как нарисовать кнопку на форме при помощи API?


1-89950
avkar
2003-11-17 22:22
2003.11.27
проблемы с dll


1-89920
Olga_Oo
2003-11-18 10:57
2003.11.27
Qreport