如何查找在Windows中运行的应用程序列表?

时间:2015-03-02 08:06:54

标签: java windows process

我想找到在windows中运行的所有应用程序的列表。列表应该只包含应用程序而不是所有进程

Process p = Runtime.getRuntime().exec (System.getenv("windir") +"\\system32\\"+"tasklist.exe"); try (BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()))) { while ((line = input.readLine()) != null) { System.out.println(line); //<-- Parse data here. } }

1 个答案:

答案 0 :(得分:0)

应用程序是您在桌面上进行交互的程序。这就是您花费几乎所有时间在计算机上使用的内容。 Internet Explorer,Microsoft Word,iTunes,Skype - 它们都是应用程序。

进程是正在运行的特定可执行(.exe程序文件)的实例。给定的应用程序可能同时运行多个进程。例如,某些现代浏览器(如google chrome)会同时运行多个进程,每个选项卡实际上都是同一个可执行文件的单独实例/进程。

所以,你能做的是:

try {
        String line;
        Process p = Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe");
        BufferedReader input =
                new BufferedReader(new InputStreamReader(p.getInputStream()));
        while ((line = input.readLine()) != null) {
            //<-- Parse the line and insert into a set using image field as a key
        }
        input.close();
    } catch (Exception err) {
        err.printStackTrace();
    } // do not forget to handle exceptions!

您将需要进行一些过滤,例如,将“任务列表”命令的结果插入“按照图像中的名称设置”。列,因为它们都与同一个应用相关联:

enter image description here