Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向图形化进程发送输入?_Java_Io - Fatal编程技术网

Java 向图形化进程发送输入?

Java 向图形化进程发送输入?,java,io,Java,Io,我正在尝试制作一个小Java应用程序,它接受我的输入,打开另一个应用程序(Windows Calculator/“calc”),并用我的输入为该应用程序提供信息 目前,我正在尝试对简单的Windows计算器执行此操作,但它似乎无法使用常规方法: public Feeder(String processID) throws Exception { rt = Runtime.getRuntime(); proc = rt.exec("calc"); input = new

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

目前,我正在尝试对简单的Windows计算器执行此操作,但它似乎无法使用常规方法:

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是图形化的。是否仍然可以向其发送输入,而不必经历逆向工程等各种麻烦?

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

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


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

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

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


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

您可能必须(使用JNI)将插件插入消息传递系统,通知应用程序事件(如“鼠标单击”或“按下R键”)。我建议您探索类似于
AutoHotKey
的解决方案,看看它们是否适合您。我也同意@SJuan76。考虑一下AutoIT版本3,它类似于AutoHotKey,同样也是一个强大的Windows脚本工具。我很欣赏AutoHoKy的想法,我已经知道它存在。但我真的很想看看是否有可能仅仅通过Java解决这个问题。:)您可能必须(使用JNI)将插件插入消息传递系统,以通知应用程序事件(如“鼠标单击”或“按下R键”)。我建议您探索类似于
AutoHotKey
的解决方案,看看它们是否适合您。我也同意@SJuan76。考虑一下AutoIT版本3,它类似于AutoHotKey,同样也是一个强大的Windows脚本工具。我很欣赏AutoHoKy的想法,我已经知道它存在。但我真的很想看看是否有可能仅仅通过Java解决这个问题。:)