gpt4 book ai didi

java - "Press Any Key To Continue"阻碍了我的程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:50 25 4
gpt4 key购买 nike

本质上,我正在使用 Java 运行静默命令行扫描。然后我等待此扫描完成并在继续之前等待进程关闭。但是,直到您“按任意键继续”,该过程才会结束。另一件需要注意的事情是,命令行窗口当时是不可见的,这是有意的,所以一旦扫描完成,进程就在后台保持 Activity 状态,空闲。这是代码片段:

Main.print("Performing RKR Scan...");
try {
Process p1 = Runtime.getRuntime().exec(dir + "RootkitRemover.exe /noupdate");
try {
p1.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
Main.print("Error Scanning With RKR: " + e);
}

有什么办法可以解决这个“按任意键”的问题,无论是官方解决方案还是绕过?

最佳答案

正如我在评论中所说,您可能会收听 InputStream 直到“按任意键”。然后你应该通过 OutputStream 向进程写入一个新行。这里有一些代码可以帮助您:

   public class BatchEnter {

public static void main(String[] args) throws Exception {
List<String> params = Arrays.asList(new String[] { "cmd", "/C", "C:/test/test.bat" });
ProcessBuilder builder = new ProcessBuilder(params);
builder.directory(new File("C:/test")).redirectErrorStream(true);
final Process p = builder.start();

final BufferedReader wr = new BufferedReader(new InputStreamReader(p.getInputStream()));
final BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(p.getOutputStream()));
String line = "";
try {
while ((line = wr.readLine()) != null) {
if (line.equals("Press any key")) {
String newLine = "\n\r";
writer.write(newLine);

}
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}

p.waitFor();
}
}

关于代码的一些评论:

  • 你应该改变异常管理,因为我正在做 e.printStackTrace()
  • 我的进程是一个命令窗口,我不知道它是否适用于你的exe

编辑:

如果您没有得到任何输出,您可以简单地尝试发送换行提要直到程序结束。例如,您可以每秒写入 newLine 直到进程停止。像这样的东西:

final BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(p.getOutputStream()));
while(true){
String newLine = "\n\r";
writer.write(newLine);
}

您可以启动一个写入进程的线程,并在 p.waitFor() 返回时停止它。您也应该更改条件,以获得更干净的东西,例如每秒或线程未停止。请注意,如果您正在写入流并且进程完成,您将遇到 IOException。这真的不是我会依赖的东西,但如果它能帮助你的话。

关于java - "Press Any Key To Continue"阻碍了我的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996150/

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