gpt4 book ai didi

c++ - 如何将 keydown 事件发送到 C++ 中的非事件窗口?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:16:01 24 4
gpt4 key购买 nike

[C++] 如何将按键事件发送到非事件窗口?

TAB 键工作正常。但是我在使用其他键(例如“Z”)时遇到了麻烦。已经用谷歌搜索了一段时间,但到目前为止还没有找到解决方案。

虚拟 key 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 事件是我尝试执行的操作所必需的。尝试从多个地方进行搜索,但到目前为止我还没有找到解决方案。

最佳答案

好的。当您按 Z 键时,使用 Spy++ 和记事本接收的 Hook 消息。这样你就可以模拟/模拟完全相同的东西,所以它看起来就像用户按下 Z 键一样。您还需要在记事本中找到 Edit 类来发送消息。所以我这样做了,我运行了 Spy++, Hook 消息,并编写了同样的东西。现在可以了:

#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);
}

关于c++ - 如何将 keydown 事件发送到 C++ 中的非事件窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com