- 简介
java要发送消息给windows窗口,首先需要获得windows窗口的句柄,然后通过JNA库中的提供的sendmsg函数即可向windows窗口传递消息。 - 需要资源
- static Myuser32 INSTANCE = (Myuser32) Native.loadLibrary("user32",Myuser32.class, W32APIOptions.DEFAULT_OPTIONS);
- int SendMessage(HWND hWnd, int Msg, int wParam, String lParam);
- 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
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。