เล่นกับ Process [C#] ภาคปรับพื้นฐาน

"ภาคปรับพื้นฐาน"  ( คุ้นๆไหมเวลาไปเรียนที่สถานเรียนกวดวิชาชั้นนำต่างๆมักจะมีคอร์สนี้ ) 

แต่ภาคปรับพื้นฐานของเรานั้น หลังอ่านจบแล้วจะทำให้ท่านสามารถเขียนโปรแกรมรันการทำงานในเครื่องได้เอง

ปิดการทำงานของเครื่อง ( Kill Process ) รัน ไฟล์แบบมี argument ได้ด้วย สามารถนำไปประยุกต์กับ Asp.net คุมเครื่อง server เช่น server เกมส์ : P เป็นต้นได้

เริ่มกันเลย

คลาสที่ต้องเรียกใช้ 
- System.Diagnostics

เริ่มต้นประกาศใช้ using Namespace ก่อนเพื่อไม่ให้ต้องพิมพ์ยาว
using System.Diagnostics;

วิชามารขั้นแรก เริ่มต้นกับการ GetProcess ที่รันอยู่ ณ ขณะนั้นกันก่อน
 

foreach(Process ps in Process.GetProcesses()){
    label1.Text += ps.ProcessName +"\n"; 
}

อธิบายโค้ดด้านบน :
ใช้คำสั่ง GetProcess() เพื่อดึง array ของ Process ที่เครื่องเราเรียกใช้อยู่เก็บไว้ใน Instance Process วนรอบ foreach ไปทีละตัวแล้วพิมพ์ออกมา

วิชามารขั้นสอง เขียนโปรแกรมรัน Process ( ลองเอาไปเขียนโปรแกรมแกล้งเพื่อนกันก็ได้นะ )

// สร้าง Instance Process ขึ้นมาอีกหนึ่งตัว
Process ps1 = new Process();    
 
// ระบุ ไฟล์ที่ต้องการรัน  ( Bat File ก็ได้นะ )
ps1.StartInfo.FileName = "C:\\Windows\\System32\\NOTEPAD.EXE";
 
// ใส่ Argument ลงไป ( ขึ้นอยู่กับโปรแกรม ) สำหรับ ณ ที่นี้ notepad หมายถึง ชื่อไฟล์
ps1.StartInfo.Arguments = "Hello WOrld";
 
// สั่งรันมันซะ !
ps1.Start();

วิถีมารขั้นสาม เขียนโปรแกรม Kill Process 

// ก็สร้าง Instance รับคลาส Array Process จากคำสั่ง GetProcess เพื่อระบุ Process มาก่อน
Process ps2 =   Process.GetProcessesByName("notepad")[0];
// หรือ จะทำอย่างงี้ก็ได้
Process[] ps2 = Process.GetProcessByName("notepad");

คำสั่ง GetProcessByName return เป็น array เพราะ เนื่องจาก Process ที่รันอยู่ในขณะนั้นมันอาจมีชื่อซ้ำกันได้ ( เฉพาะคำสั่ง GetProcessByName แต่ถ้า GetByID จะไม่ซ้ำ )

โค้ดแบบสั้นๆ ของการ kill :   Process.GetProcessesByName("notepad")[0].Kill();
จากนั้นก็ ps2.Kill() เท่านี้ก็เสร็จสิ้นกระบวนท่าวิชามาร

โอ้เจ๋ง
ว่าแต่อยากถามหน่อยจิว่าจะให้โปรแกรมเช็คว่าเครื่องพิมพ์ พิมพ์งานอยู่รึเปล่า(งานของโปรแกรมอื่นนะ) จะทำยังไงดีอะ

โอ้โห รักเลยงี้ กำลังจะทำให้อาจารย์อยู่พอดีเลย เพราะว่าอาจารย์เขาบอกว่านักเรียนเล่น DotA กันในห้องคอม ก็เลยจะลองให้มันหา Process เสร็จแล้วก็ให้ Kill หรือไม่ก็ให้ Restart ซะเลย อยากเล่นเกมดีนัก ทำงานอยู่ก็ดับไป๊ *0*

ได้ใจมากเลยพี่ >_< เพราะว่าอ่าน Eng ไม่รู้เรื่อง

ผมพึ่งเข้ามาอ่านเป็นครั้งแรกครับ...
มีผมยังไม่เข้าใจเท่าไหร่นัก
แต่ผมจะพยายามฝึก และหัดบ่อยๆ นะครับ
ยังไงก็ รบกวนพี่ด้วยนะครับ...ช่วยสอนหน่อย..
ขอบคุณล่วงหน้าครับ...เป็นกำลังใจให้ครับ..สู้ๆ

paitoon_koon@hotmail.com

Post new comment

คำนวณผลบวกด้านบนแล้วกรอกผลลัพธ์ลงในช่อง เช่น 2 ลบ 1 ให้พิมพ์ 1