利用JInvoke点击win窗体按钮
利用第三方包JInvoke,可以方便的调用User32.dll中的api,来实现对windows窗体访问。
?
Tips: 网上例子不太多,可以先搜索User32 api,然后再在类库中找对应方法 :)
?
做了个简单的demo,点击某windows窗体的某个按钮,代码如下:
?
import com.jinvoke.win32.User32;public class WindowUtil { public int clickButton(String windowName, String buttonName) { // 通过titile查找某windows窗体,并对应返回hwnd int winPtr = User32.FindWindow(null, windowName); if (winPtr > 0) { // 前端显示 User32.SetForegroundWindow(winPtr); // 查找button对象,并返回该button句柄 int buttonPtr = User32.FindWindowEx(winPtr, 0, "Button", buttonName); if (buttonPtr > 0) { // 将Click事件通过send Message发送给button User32.SendMessage(buttonPtr, com.jinvoke.win32.WinConstants.BM_CLICK, 0, 0); return 1; } } return 0; } public static void main(String argv[]) {WindowUtil wUtil = new WindowUtil(); wUtil.clickButton("打开", "取消"); }}?
Hope it can relax your eyes : )
