在我的程序中,我想杀死正在运行的任务管理器。我已经尝试过了:
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);
}
但是任务管理器仍在运行。我该怎么办?
答案 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");
}