Как убить диспетчер задач в Java? - PullRequest
0 голосов
/ 19 сентября 2018

В моей программе я хочу убить диспетчер задач, если он запущен.Я пробовал это:

 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 голосов
/ 19 сентября 2018

Ладно, чтобы убить TaskManager, вам нужна привилегия администратора.для этой загрузки this .

теперь скопируйте любой файл Elevate.exe или Elevate64.exe в исходный путь вашего проекта Java.

затем

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

теперь будет запрашивать да или нет.нажмите на да .... и БУМ

0 голосов
/ 19 сентября 2018
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.

0 голосов
/ 19 сентября 2018

Вы пытались изменить регистр процесса?
Например:

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