【问题标题】:How to kill Task Manager in java?如何在java中杀死任务管理器?
【发布时间】:2019-02-23 14:06:15
【问题描述】:

在我的程序中,如果任务管理器正在运行,我想杀死它。我试过这个:

 private static final String TASKLIST = "tasklist";
private static final String KILL = "taskkill /F /IM ";
if(isProcessRunning("Taskmgr.exe")){
    // TODO code application logic here
    killProcess("Taskmgr.exe");
}

这是我的isProcessRunning() 方法:

public static boolean isProcessRunning(String servicename) throws Exception {
    Process p = Runtime.getRuntime().exec(TASKLIST);
    BufferedReader reader = new BufferedReader(new InputStreamReader(
        p.getInputStream()));
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
        if (line.contains(servicename)) {
            System.err.println(line);
            return true;
        }
     }
     return false;
}

还有killprocess() 方法:

public static void killProcess(String serviceName) throws Exception {
    Runtime.getRuntime().exec(KILL + serviceName);
}

但任务管理器仍在运行。我能做什么?

【问题讨论】:

  • KILL 是什么?
  • 您是否检查过您的程序是否有权关闭Taskmgr? taskmgr 也没有大写“T”
  • 除此之外:您为什么要这样做?这就像在 Windows 机器上运行 Java 程序时我最不想做的事情。
  • 私有静态最终字符串 TASKLIST = "tasklist"; private static final String KILL = "taskkill /F /IM";
  • @alpha_boy 请记住,此代码依赖于平台,如果您碰巧尝试在另一个系统上运行它,它将无法在另一个系统上运行。

标签: java kill-process


【解决方案1】:

您是否尝试过更改流程的大小写?
例如:

if(isProcessRunning("taskmgr.exe")){
    killProcess("taskmgr.exe");
}

【讨论】:

  • 是的,如果我尝试另一个进程,代码是正确的。
  • 但是taskmgr.exe没有大写
  • 在 Windows 中无关紧要。打开命令提示符并测试 cmd.exe 与 Cmd.exe。返回相同的进程
【解决方案2】:

好的,要杀死taskmanager,您需要管理员权限。本次下载this.

现在将任何一个文件 Elevate.exe 或 Elevate64.exe 复制到您的 java 项目源路径中。

然后

Runtime.getRuntime().exec("src//Elevate64.exe TASKKILL /F /IM Taskmgr.exe"); 

现在它会提示是或否。点击是....然后BOOM

【讨论】:

    【解决方案3】:
    try{
        Process p = Runtime.getRuntime()
        p.exec("taskkill /F /IM taskmgr.exe /T")
    catch(*Enter applicable exception type here*  e){
        System.err.println("Caught Exception: " + e.getMessage());
    }
    

    没有必要明确检查任务是否正在运行。如果找不到,则不会执行该命令。尝试杀死它,如果遇到异常,请在 catch 块中解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多