我打算模拟一下鼠标和键盘的动作。我可以在windows和所有windows应用程序上模拟它,但当我打开游戏(Digimon Masters )时,键盘和鼠标模拟停止工作,脚本仍在运行。有没有人能说出他们是如何判断这是模拟的按键,还是被人在键盘上点击的?我想模拟按键和鼠标移动,就像人在键盘和鼠标上做的那样。 请找到下面的样本,这是我写的,它是工作在所有的windows应用程序,但不是在游戏中。 Robot r = new Robot();
while(true)
{
PointerInfo a = MouseInfo.getPointerInfo();
当鼠标中键被按下时,我使用WM_MBUTTONDOWN来跟踪它。因此,当我在鼠标滚轮上单击鼠标中键时,它将在控制台上显示消息。我想知道为什么它不能工作。WM_MBUTTONDOWN是用于其他用途的吗?
LRESULT CALLBACK UI::WindowProcedure(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
// The message is post when we destroy the window.
case WM_DESTROY
据我所知,在Linux中,来自硬件设备的输入可以被认为是将数据写入文件,所以我认为在不使用X的情况下向/dev/input/mice编写一些东西来模拟鼠标点击是很有可能的。
这就是我所做的:
root@linux:~$ sudo cat /dev/input/mice >> right-click
(click the right button of your mouse, and then press ctrl+c to terminate it.)
root@linux:~$ sudo cat right-click >> /dev/input/mice
我这样做是