Клавиша TAB работает нормально. Но у меня проблемы с другими клавишами, такими как «Z». Некоторое время гуглил, но пока не нашел решения.
Виртуальный ключ 0x5A должен быть правильным для буквы Z.
#include <iostream>
#include <Windows.h>
#include <string>
LPCSTR Target_window_Name = "Untitled - Notepad"; //<- Has to match window name
HWND hWindowHandle = FindWindow(NULL,Target_window_Name);
int main()
{
//send TAB DOWN - WORKS FINE
SendMessage(hWindowHandle,WM_KEYDOWN,0x09,0);
//send TAB DOWN
SendMessage(hWindowHandle,WM_KEYUP,0x09,0);
//send Z DOWN - NOT WORKING
SendMessage(hWindowHandle,WM_KEYDOWN,0x5A,0);
//send Z UP
SendMessage(hWindowHandle,WM_KEYUP,0x5A,0);
return(0);
}
PS Keydown и Up события необходимы для того, что я пытаюсь сделать.
Пробовал поиск из нескольких мест, но я пока не нашел решения.
Хорошо. Используйте Spy ++ и перехватывайте сообщения, полученные Блокнотом, когда вы нажимаете Z
ключ. Таким образом, вы можете симулировать / имитировать ТОЧНО одну и ту же вещь, поэтому она будет выглядеть точно так же, как пользователь нажал Z
ключ.
Также вам нужно найти Edit
класс в блокноте для отправки сообщений.
Я сделал это, запустил Spy ++, перехватил сообщения и написал то же самое. Теперь это работает:
#include <windows.h>
#include <iostream>
#include <string>int main()
{
LPCSTR Target_window_Name = "Untitled - Notepad"; //<- Has to match window name
HWND hWindowHandle = FindWindow(NULL,Target_window_Name);
HWND EditClass = FindWindowEx(hWindowHandle, NULL, "Edit", NULL);
SendMessage(EditClass,WM_KEYDOWN,0x5A,0x002C0001);
SendMessage(EditClass,WM_CHAR,0x7A,0x002C0001);
SendMessage(EditClass,WM_KEYUP,0x5A,0xC02C0001);
return(0);
}
Других решений пока нет …