![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программно нажать клавишу
Ик сик © (2003-04-03 15:23:00)Как послать элементу управления чужой проги сообщение что нажата клавиша?
Ик сик (2003-04-03 17:20:00) [1]Ок, народ я просто сразу не врубился что нужно сначала активизировать элемент управления, а потом keybd_event
Спасибо всем большое.
Songoku (2003-04-03 17:11:00) [2]Удалено модератором
Примечание: Для этого есть help
Songoku (2003-04-03 17:00:00) [3]procedure UPressKey(key:byte);
begin
keybd_event(key, Lo(MapVirtualKey(key,0)) , KEYEVENTF_EXTENDEDKEY or 0, 0 );
keybd_event(key, Lo(MapVirtualKey(key,0)) , KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
end;
как пользоватся:
UPressKey(Ord("a")) или UPressKey(Ord("М"))
UPressKey(VK_LEFT) или UPressKey(VK_F6)
Ик сик (2003-04-03 16:11:00) [4]Плиз...
Ик сик (2003-04-03 15:48:00) [5]А как использовать keybd_event, ведь там не параметра handle?
Как ее послать конкретному объекту?
Игорь Шевченко (2003-04-03 15:43:00) [6]Ик сик (03.04.03 15:40)
Посмотри, как это сделано в исходниках VCL, к примеру
Ик сик (2003-04-03 15:40:00) [7]
> Игорь Шевченко
Там дикие параметры, я не пойму как ими пользоваться
KeyData
Value of lParam. Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table:
Value Description
0-15 Specifies the repeat count. The value is the number of times the keystroke is repeated as a result of the user holding down the key.
16-23 Specifies the scan code. The value depends on the original equipment manufacturer (OEM).
24 Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
25-28 Reserved; do not use.
29 Specifies the context code. The value is always 0 for a WM_KEYDOWN message.
30 Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is 0 if the key is up.
31 Specifies the transition state. The value is always 0 for a WM_KEYDOWN message.
Ик сик (2003-04-03 15:38:00) [8]А что значит hardware scan code (в твоем примере 10)?
Как ее посылать через sendmessage?
Игорь Шевченко (2003-04-03 15:32:00) [9]
>элементу управления чужой проги сообщение
PostMessage(Hэлементуправлениячужойпроги, WM_KEYDOWN, кодклавиши, ...)
PostMessage(Hэлементуправлениячужойпроги, WM_KEYUP, кодклавиши, ...)
Style (2003-04-03 15:29:00) [10]keybd_event(VK_UP,10,0,0); нажать кнопку вверх
keybd_event(VkScanKey("a"),10,0,0); нажать кнопку "a"
Style (2003-04-03 15:28:00) [11]keyb_event :)