อ้างอิงจากโปรเจคที่ทำงาน โดยโจทย์มีอยู่ว่า ให้ตรวจสอบดูว่าในคอมพิวเตอร์เครื่องนั้น มีโปรแกรม saplogon.exe ทำงานอยู่หรือไหม? เพื่อที่จะได้ทำ process อื่นต่อ แวบแรกนึกถึง cmd Tasklist ที่ไว้แสดง รายการ process ใน Task Manager ของทาง windows
เลยนำความสามารถนี้มาใช้ ปัญหาคือ แล้วมันจะใช้ยังไง ก็เลยค้นหา google เจอ code ที่ใช้ได้ เจ๋ง! เลยนำมาประยุกต์ โดยที่ code มันจะลูปแสดง process ทั้งหมดที่อยู่ใน Buffered ผมก็เลย ดักมันด้วย indexOf เพื่อค้นหามัน ถ้าเจอมันจะให้ค่าเท่ากับ 0 แค่นี้ก็เรียบร้อย เยี่ยมๆ จริงๆๆ
Code
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) { System.out.println(line); //แสดง Process ที่ทำงาน int index = line.indexOf("saplogon.exe"); if (index == 0) { System.out.println("Yes, I found saplogon.exe."); } input.close(); } catch (Exception err) { err.printStackTrace(); }
ที่มา: stackoverflow