如何在Java中杀死Task Manager?

时间:2018-09-19 11:48:44

标签: java kill-process

在我的程序中,我想杀死正在运行的任务管理器。我已经尝试过了:

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

但是任务管理器仍在运行。我该怎么办?

3 个答案:

答案 0 :(得分:4)

好的,要杀死taskmanager,您需要管理员特权。下载this

现在在Java项目源路径中复制任何一个文件Elevate.exe或Elevate64.exe。

然后

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

现在将提示您输入是或否。点击是...。然后弹出

答案 1 :(得分:1)

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块中加以说明。

答案 2 :(得分:0)

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

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