gpt4 book ai didi

java - 使用 Java 模拟终端内的按键

转载 作者:行者123 更新时间:2023-12-01 10:04:05 26 4
gpt4 key购买 nike

当前正在终端中通过 ssh 运行程序。为了控制程序,我需要输入某些键(“i”、“j”、“l”或“,”)。我正在尝试使用 java 类来根据某些输入模拟这些按键,但我遇到了几个问题。

1) 如果终端没有焦点,模拟按键不会执行任何操作。我有一个 vb 脚本来将焦点更改为其他窗口,但被告知我需要一些额外的步骤才能从 java 类启动该脚本。我还想也许运行时中有一些东西。无论如何只需按一下按键即可,但我对此不熟悉。

2)即使我可以执行上述操作之一,我也不确定“模拟”按键是否足以控制程序。事实上,我尝试运行我的Java项目并在模拟按键之前手动切换到终端,但没有效果。

任何有关这些想法的意见/帮助,或以其他方式完成我的任务的建议将不胜感激。如果需要,我可以尝试提供更多细节。

谢谢!

更新:因此,当我手动切换到终端时,模拟按键实际上起作用了。我想我第一次的速度不够快。所以我只需要自动将焦点切换到终端即可解决问题。

最佳答案

为了模拟按键,您可以使用

        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();
}
}

关于java - 使用 Java 模拟终端内的按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com