【发布时间】:2011-08-22 22:56:34
【问题描述】:
什么是Java中易于学习的Windows编程(调用win32 api)框架或技术?
我需要能够访问 windows api 来执行诸如发送击键、打开应用程序、重新启动窗口等操作。
【问题讨论】:
-
标准的java.awt.Robot 可以做一些这样的事情。
-
购物和推荐问题不被视为主题。
什么是Java中易于学习的Windows编程(调用win32 api)框架或技术?
我需要能够访问 windows api 来执行诸如发送击键、打开应用程序、重新启动窗口等操作。
【问题讨论】:
对我来说最简单的方法是使用 AutoIt 第 3 版制作小型实用程序,然后让我的 Java 程序调用这些实用程序。这些程序可以通过输入和输出流进行通信。如果我想更深入地研究 Windows,JNA 是要走的路,这里和它的网站上有很多关于如何使用它的示例。 JNI 是另一种方式(JNA 实际上使用 JNI),但我发现它更难,因为我的 C 很生锈。
编辑:
许多人建议使用 Robot 对象,但我在使用 Robot 时遇到的问题是您无法枚举非 Java 窗口,然后仅通过 Java 激活所需的窗口。此外,您不能像使用 JNA 和 AutoIt 那样直接与窗口控件交互。
【讨论】:
对于发送击键,您可以使用 java java.awt.Robot,对于打开的应用程序,java.lang.ProcessBuilder 在那里。有独立于操作系统的API。
对于重启窗口,也许还可以使用 ProcessBuilder 来调用“关闭”命令,请参见此处。 Shutdown Windows with Java
【讨论】: