weixin_42174395 2018-11-15 10:18 采纳率: 0%
浏览 3869
已结题

java如何获取其他应用程序的窗口控件?

比如现在有一个桌面应用。我现在要抓取这个桌面应用输入框或者其他控件的内容

  • 写回答

2条回答 默认 最新

  • oyljerry 2018-11-15 10:47
    关注

    通过windows API, FindWindow

     import com.sun.jna.Native;
    import com.sun.jna.platform.win32.User32;
    import com.sun.jna.platform.win32.WinDef.HWND;
    import com.sun.jna.win32.StdCallLibrary;
    
    public class SomeClass 
    {
        public static interface User32 extends StdCallLibrary
        {
             final User32 instance = (User32) Native.loadLibrary ("user32", User32.class);
             HWND FindWindowExA(HWND hwndParent, HWND childAfter, String className, String windowName);
             HWND FindWindowA(String className, String windowName);
        }
    
        public static void main(String[] args)
        {
            HWND hwndShell = User32.instance.FindWindowExA(null, null, "Shell_TrayWnd", null);
            HWND hWnd = User32.instance.FindWindowExA(hwndShell, null, "Start", "Start");     
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作