เล่นกับ 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