- 简介
java要发送消息给windows窗口,首先需要获得windows窗口的句柄,然后通过JNA库中的提供的sendmsg函数即可向windows窗口传递消息。 - 需要资源
- jna-platform-4.0.0.jar
- jna-platform-4.0.0.jar
- 创建自定义Myuser32接口
-
Myuser32库的实例
- static Myuser32 INSTANCE = (Myuser32) Native.loadLibrary("user32",Myuser32.class, W32APIOptions.DEFAULT_OPTIONS);
- 发送接口函数
- int SendMessage(HWND hWnd, int Msg, int wParam, String lParam);
-
- 获得user32库的实例
-
static User32 user32 = User32.INSTANCE;
static Myuser32 myuser32 = Myuser32.INSTANCE;
(User32)用来查找窗口,(Myuser32)用来发送消息
-
- 获取当前窗口句柄
-
HWND h = user32.FindWindow(windowClass, title);windowClass:窗口类型;
title:窗口标题;
两个参数允许其中一个为null
-
- 发送消息
-
Send_Msg_Windows(h, msg);h:窗口句柄
msg:待发送消息
-
- 总结
- 为什么要使用Myuser32和User32两个实例
User32是JNA提供的实例,它本身提供窗口查找和发送参数方法,但是因为它提供的参数发送方法(user32.PostMessage(handle, 44444, null, new LPARAM(6));)只能发送整形数据,因此只能放弃使用。
经过自定义的Myuser32接口则提供myuser32.SendMessage(handle, 1280, 6, Msg),此方法中的msg就是文本消息。 - 源码:请到http://www.dingwave.com/bbs/forum.php?mod=viewthread&tid=267&extra=page%3D1
- 为什么要使用Myuser32和User32两个实例
Java如何发送文本消息到Window窗口
最新推荐文章于 2024-07-26 03:08:06 发布