Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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
Java JNA | User32#PostMessage WM|u MOUSEMOVE_Java_Windows_Java Native Interface_Jna_Mouselistener - Fatal编程技术网

Java JNA | User32#PostMessage WM|u MOUSEMOVE

Java JNA | User32#PostMessage WM|u MOUSEMOVE,java,windows,java-native-interface,jna,mouselistener,Java,Windows,Java Native Interface,Jna,Mouselistener,我不熟悉使用JNA。我试图在窗口内模拟鼠标移动。 我有几个问题 我知道可以通过PostMessage发送鼠标输入事件,使用JNA,这看起来像: 有人能帮我把这些参数分解一下吗?第一个是窗口把手,非常简单。 根据文档,第二条是我要发送的消息。好吧,我想我想要这个: WM_MOUSEMOVE是我想要的消息,但是参数需要一个int-有人能解释一下我在这里应该做什么吗 更进一步,剩下的2/4参数是WinDef.WPARAM和inDef.LPARAM。再次参考WM_MOUSEMOVE文档: “WPAR

我不熟悉使用JNA。我试图在窗口内模拟鼠标移动。 我有几个问题

我知道可以通过PostMessage发送鼠标输入事件,使用JNA,这看起来像:

有人能帮我把这些参数分解一下吗?第一个是窗口把手,非常简单。 根据文档,第二条是我要发送的消息。好吧,我想我想要这个:

WM_MOUSEMOVE是我想要的消息,但是参数需要一个int-有人能解释一下我在这里应该做什么吗

更进一步,剩下的2/4参数是WinDef.WPARAM和inDef.LPARAM。再次参考WM_MOUSEMOVE文档: “WPARAM指示各种虚拟键是否已关闭。”

如果没有键被关闭,我可以将其作为null传递吗?否则它会给我一个可以使用的代码列表,同一类型的代码引用了WM_MOUSE MOVE“例如;0x0008)有人能告诉我这些类型的序列是什么以及我如何使用它们吗

最后,对于LPRAM,“…低阶字指定x坐标。。高阶单词指定光标的y坐标”。好吧,这看起来很容易,但是JNA只允许1个参数(长)。然而我注意到在[C]API中有一个MAKELPARAM(1,2)。那么如何在JNA的LPARAM中指定坐标呢


有人能提供一个工作片段吗?使用JNA将鼠标移动事件发送到窗口。提前感谢!

欢迎使用StackOverflow。通常我们不会要求人们在这里为我们编写代码…请至少进行初步尝试,然后在不起作用时返回寻求帮助。:)您可以从哪个开始看起来它使用了相同的代码。关于类型,它是指针大小的类型,这意味着它在Win32上是32位(双字),在Win32上是64位。“低阶字”是最右边的16位,您只需将值强制转换为
short
。“高阶字”“是位17-32,您可以通过将值右移16位,然后转换为
short
来获得。要将数字放入LPRAM,只需创建一个
long
变量,并使用按位OR,低16位
short
,高16位值左移16位。最后,显示一个简短的搜索,您可能会发现它很有用。