目前通过终端中的ssh运行程序。要控制程序,我需要键入某些键('i','j','l'或',')。我正在尝试使用java类来根据某些输入模拟这些按键,但我遇到了几个问题。
1)没有终端对焦,模拟按键不会做任何事情。我有一个vb脚本将焦点转移到其他窗口,但被告知我需要一些额外的步骤来从java类启动脚本。我也在想,也许在运行时有一些东西。无论什么只做按键,但我不熟悉它。
2)即使我可以做上述其中一项,我也不确定“模拟”按键是否足以控制程序。实际上,我尝试运行我的Java项目并在模拟按键之前手动切换到终端,但它没有效果。
对这些想法的任何输入/帮助,或者以其他方式完成我的任务的建议将不胜感激。如果需要,我可以尝试提供更多细节。
谢谢!
更新: 因此,当我手动切换到终端时,模拟按键实际工作。我想我第一次不够快。所以我只需要自动将焦点切换到终端并解决问题。
答案 0 :(得分:1)
为了模拟按键,您可以使用
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_I);
robot.keyRelease(KeyEvent.VK_I);
要运行VbScripts,请使用Runtime.getRuntime().exec(file.getPath());
,其中file是您的vbscript文件
例如: -
public static void runScript()
{
try
{
File file = File.createTempFile("popup", ".bat");
file.deleteOnExit();
FileWriter fw = new FileWriter(file);
String vbs = "result=Msgbox(\"Are you sure?\",vbYesNo+vbInformation, \"\")"
+ "\nWScript.Echo result";
fw.write(vbs);
fw.close();
Runtime.getRuntime().exec(file.getPath());
}
catch (Exception e)
{
e.printStackTrace();
}
}