Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将鼠标点击事件发送到游戏应用程序?_C++_Windows_Winapi_Window - Fatal编程技术网

C++ 如何将鼠标点击事件发送到游戏应用程序?

C++ 如何将鼠标点击事件发送到游戏应用程序?,c++,windows,winapi,window,C++,Windows,Winapi,Window,我尝试向游戏应用程序发送鼠标单击事件。首先,我使用Spy++查找应用程序接收的消息。我看到的东西有:WM_MOUSEACTIVATE,WM_WINDOWPOSCHANGING,WM_ACTIVATEAPP,WM_ACTIVATE,WM_SETFOCUS。。。 我尝试发送与在Spy++上看到的相同的消息,但它不起作用。如何将鼠标点击发送到游戏应用程序而不给它焦点。它在窗口模式下运行。提前谢谢。你想让WM_lmouse停下来。您可以随时查看MSDN的文档,了解消息的含义。自动化应用程序和游戏的最佳方

我尝试向游戏应用程序发送鼠标单击事件。首先,我使用Spy++查找应用程序接收的消息。我看到的东西有:WM_MOUSEACTIVATE,WM_WINDOWPOSCHANGING,WM_ACTIVATEAPP,WM_ACTIVATE,WM_SETFOCUS。。。
我尝试发送与在Spy++上看到的相同的消息,但它不起作用。如何将鼠标点击发送到游戏应用程序而不给它焦点。它在窗口模式下运行。提前谢谢。

你想让WM_lmouse停下来。您可以随时查看MSDN的文档,了解消息的含义。

自动化应用程序和游戏的最佳方法是通过。虽然理论上可以通过WM_LubtTown等驱动应用程序,但许多应用程序通过较低级别的API(如GetAsyncKeyState)直接读取密钥状态,这些API不会更改其状态以反映从消息队列处理的消息


使用SendInput需要实际将游戏设置到前台,因为输入事件是在低级别合成的,因此会传递到活动/聚焦窗口。

这与
WM_LBUTTONDOWN
相同吗?我也发送WM_LBUTTONDOWN,我会检查我发送的每个消息的MSDN。我还检查了Spy++,我看到我的应用程序收到了我收到的所有消息,但它仍然不工作。我不明白。请注意,如果你打算为游戏创建一个作弊,那么这可能是不太可靠/优雅的方式:)发布一些代码作为你发送消息的方式。以及您如何获得游戏窗口的手柄。。嗯。。我试着写一个机器人程序(自动?)。我不知道用英语怎么称呼它。这个游戏没有任何像X-trap,N-Protect游戏守卫这样的保护器。你能告诉我怎么做吗?我应该学什么。我花了很多时间向它发送消息,这里有一些代码:Get handle:HWND hRO=FindWindow(L“GameClassName”,L“GameWindowName”);(取自Spy++)。SendMessage(hRO,WM_MOUSEACTIVATE,0x00190476,0x0201001);发送消息(hRO,WM_WindowPosChanged,0,0x0018FA50);发送消息(hRO,WM_激活EAPP,1,0);发送消息(hRO、WM_激活、WA_点击激活、0);发送消息(hRO,WM_NCACTIVATE,1,0);SendMessage(hRO,WM_SETFOCUS,0,0);PostMessage(hRO、WM_LBUTTONDOWN、MK_LBUTTON、MAKELONG(200200));PostMessage(hRO、WM_LBUTTONUP、MK_LBUTTON、MAKELONG(200200));SendMessage(hRO,WM_KILLFOCUS,0,0);我试过:输入minput;minput.type=输入\鼠标;minput.mi.dx=200;minput.mi.dy=200;minput.mi.dwFlags=MOUSEEVENTF_LEFTDOWN;minput.mi.time=0;SetforeGroundindow(hRO);睡眠(5000);如果(SendInput(1,&minput,sizeof(INPUT))=0)消息框(0,L“SendInput ERROR”,L“ERROR”,0);。我手动运行并点击游戏窗口,它有一个按钮,但在我的鼠标位置,而不是在200:200。如果我不点击游戏窗口,它会在我的鼠标位置点击。我的意思是它有一个LBUTTONDOWN状态,所以它在我点击鼠标左键并拖动时工作。