Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программно нажать клавишу


Ик сик ©   (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 :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо