Вопрос
Нужно послать нажатия клавиш окну, зная только его 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 Сообщество Чайников
Контактная информация