0

我正在尝试制作一个小型 Java 应用程序,它接受我的输入,打开另一个应用程序(Windows Calculator / "calc")并用我的输入提供该应用程序。

目前,我正在尝试对简单的 Windows Calculator 执行此操作,但它似乎不适用于传统方法:

public Feeder(String processID) throws Exception {
    rt = Runtime.getRuntime();
    proc = rt.exec("calc");

    input = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
}

public void sendCommand(int cmd) throws Exception {
    input.write(cmd);
    input.flush();
    input.close();

    proc.waitFor();
}

部分取自其他来源,归功于作者

然而,与上面发送到另一个命令行进程的代码相反,WinCalc 是图形化的。是否仍然可以向它发送输入而不必经历逆向工程等各种麻烦?

4

1 回答 1

3

您可以使用 java.awt.Robot 将文本发送到当前活动窗口,并为您移动和单击鼠标。如果您需要更高级的消息传递,那么您将需要 JNI 或(我的推荐)JNA。

其他选项包括将您的应用程序绑定到 AutoHotKey 或 AutoIt V3。

就我自己而言,我已经成功地运行了结合了 JNA、Robot 和 AutoIt 的其他应用程序,并使用了最适合这种情况的应用程序。

于 2012-12-21T23:21:11.433 回答