Список запущенных приложений Windows с использованием Java - PullRequest
3 голосов
/ 05 февраля 2010

Как получить список запущенных приложений Windows с использованием Java? Мне нужно получить список процессов.

Ответы [ 4 ]

3 голосов
/ 05 февраля 2010

Я бы порекомендовал также использовать утилиту qprocess, затем, если вам нужна дополнительная информация о процессе, используйте wmic.

Пример:

String line;
try {
        Process proc = Runtime.getRuntime().exec("wmic.exe");
        BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        OutputStreamWriter oStream = new OutputStreamWriter(proc.getOutputStream());
        oStream .write("process where name='explorer.exe'");
        oStream .flush();
        oStream .close();
        while ((line = input.readLine()) != null) {
            System.out.println(line);
        }
        input.close();
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }

См. http://ss64.com/nt/wmic.html или http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp для примера того, что вы можете получить из wmic ...

2 голосов
/ 05 февраля 2010

Вы можете запустить утилиту командной строки из Java для сбора информации о процессах. Например:

Process process = Runtime.getRuntime().exec("qprocess");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

Тогда вы просто читаете его вывод и анализируете его. qprocess - это стандартная утилита Windows XP. В других версиях Windows вам, вероятно, понадобится другая утилита.

0 голосов
/ 30 мая 2013
    package com.vipul;

import java.applet.Applet;
import java.awt.Checkbox;
import java.awt.Choice;
import java.awt.Font;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class BatchExecuteService extends Applet {
    public Choice choice;

    public void init() 
    {
        setFont(new Font("Helvetica", Font.BOLD, 36));
        choice = new Choice();
    }

    public static void main(String[] args) {
        BatchExecuteService batchExecuteService = new BatchExecuteService();
        batchExecuteService.run();
    }

    List<String> processList = new ArrayList<String>();

    public void run() {
        try {
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec("D:\\server.bat");
            process.getOutputStream().close();
            InputStream inputStream = process.getInputStream();
            InputStreamReader inputstreamreader = new InputStreamReader(
                    inputStream);
            BufferedReader bufferedrReader = new BufferedReader(
                    inputstreamreader);
            BufferedReader bufferedrReader1 = new BufferedReader(
                    inputstreamreader);

            String strLine = "";
            String x[]=new String[100];
            int i=0;
            int t=0;
            while ((strLine = bufferedrReader.readLine()) != null) 
            {
        //      System.out.println(strLine);
                String[] a=strLine.split(",");
                x[i++]=a[0];
            }
    //      System.out.println("Length : "+i);

            for(int j=2;j<i;j++)
            {
                System.out.println(x[j]);
            }
        }
        catch (IOException ioException) 
        {
            ioException.printStackTrace();
        }

    }
}

вы можете создать командный файл как

TASKLIST / v / FI "STATUS eq running" / FO "CSV" / FI "Имя пользователя eq LHPL002 \ soft" / FI "MEMUSAGE gt 10000" / FI "Windowtitle ne N / A" / NH

0 голосов
/ 05 февраля 2010

вы можете искать ТАК для похожих ответов. один здесь . Посмотрите, соответствует ли это вашим потребностям. Еще есть много решений в сети. поиск Google для них

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...