СообЧа > База Знаний > Программирование > Visual Basic > Формы и элементы управления

Вопрос

Нужно послать нажатия клавиш окну, зная только его hWnd. Может кто знает?

Ответ

Вот эти сообщения получило мое тестовое окно, когда я нажал и отпустил Enter.

msg=0x129 hwnd=0x11067c wparam=0x0 lparam=0x0 result=0x0
msg=0x87 (WM_GETDLGCODE) hwnd=0x11067c wparam=0x0 lparam=0x0 result=0x0
msg=0x100 (WM_KEYDOWN) hwnd=0x11067c wparam=0xd lparam=0x1c0001 result=0x0
msg=0x87 (WM_GETDLGCODE) hwnd=0x11067c wparam=0x0 lparam=0x0 result=0x0
msg=0x102 (WM_CHAR) hwnd=0x11067c wparam=0xd lparam=0x1c0001 result=0x0
msg=0x101 (WM_KEYUP) hwnd=0x11067c wparam=0xd lparam=0xffffffffc01c0001 result=0x0

В принципе, оставить нужно только

msg=0x100 (WM_KEYDOWN) hwnd=0x11067c wparam=0xd lparam=0x1c0001 result=0x0
msg=0x102 (WM_CHAR) hwnd=0x11067c wparam=0xd lparam=0x1c0001 result=0x0
msg=0x101 (WM_KEYUP) hwnd=0x11067c wparam=0xd lparam=0xffffffffc01c0001 result=0x0

Ну а в качестве wparam подставляй виртуальный код твоей клавиши (в случае с Enter он равен vbKeyReturn или 13 (d в 16-ричной системе счисления). Отправить сообщение поможет апишка SendMessage.

Артем Кривокрисенко



Copyright © 2000-2004 Сообщество Чайников
Контактная информация