Friday, April 9, 2010

Windows Tasklist using Java

package test.process;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class ProcessManager {
public static void main(String[] args) {
List testList = ProcessManager.getTaskList();
for(Task task:testList){
System.out.println(task.getImageName()+" : "+task.getMemoryUsage());
}
}

public static List getTaskList(){
List tasklist = new ArrayList();
try {
String []command = new String[] {"tasklist","/fo","csv","/nh"};
Process process = Runtime.getRuntime().exec(command);
BufferedReader input = new BufferedReader
(new InputStreamReader(process.getInputStream()));
String line ="";
while ((line = input.readLine()) != null) {
if(!line.equals("")) {
line = line.replaceAll("\"","");
Task task = new Task();
String[] taskAttributes = null;
try {
taskAttributes = line.split(",");
} catch (RuntimeException e) {
e.printStackTrace();
}
task.setImageName(taskAttributes[0]==null?"":taskAttributes[0]);
task.setProcessID(taskAttributes[1]==null?"":taskAttributes[1]);
task.setSessionName(taskAttributes[2]==null?"":taskAttributes[2]);
task.setSessionNumber(taskAttributes[3]==null?"":taskAttributes[3]);
try {
task.setMemoryUsage(taskAttributes[4]==null?"":taskAttributes[4]+taskAttributes[5]==null?"":taskAttributes[5]);
} catch (RuntimeException e) {
task.setMemoryUsage(taskAttributes[4]==null?"":taskAttributes[4]);
}
tasklist.add(task);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return tasklist;
}
}

No comments:

Post a Comment

LinkWithin

Related Posts with Thumbnails