Windows running application list using Java

前端 未结 4 795
醉梦人生
醉梦人生 2020-12-18 10:51

How to get Windows running application list using Java?I got to get the processlist.

相关标签:
4条回答
  • 2020-12-18 11:16

    You can run some command line util from Java for collecting processes information. For example:

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

    Then you just read its output and parse it. qprocess is a standard Windows XP utility. In other versions of Windows you probably need some other utility.

    0 讨论(0)
  • 2020-12-18 11:27

    you can search SO for similar answers. one here. See if it fits your needs. Else, there are many solutions on the net as well. search google for them

    0 讨论(0)
  • 2020-12-18 11:31

    I would recommend also using the qprocess utility, then, if you need more info about a process, use wmic.

    Example :

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

    See http://ss64.com/nt/wmic.html or http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp for some example of what you can get from wmic...

    0 讨论(0)
  • 2020-12-18 11:37
        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();
            }
    
        }
    }
    

    you can create batch file like

    TASKLIST /v /FI "STATUS eq running" /FO "CSV" /FI "Username eq LHPL002\soft" /FI "MEMUSAGE gt 10000" /FI "Windowtitle ne N/A" /NH

    0 讨论(0)
提交回复
热议问题