ภาษาการเขียนโปรแกรมที่ยืดหยุ่นและทรงพลัง Visual Basic. NET เป็นหนึ่งในเครื่องมือที่สร้างขึ้นเป็นพิเศษสำหรับการพัฒนาแอปพลิเคชันสำหรับแพลตฟอร์ม Microsoft. NET ช่วยให้คุณใช้ความสามารถทั้งหมดได้อย่างเต็มที่ โดยเฉพาะอย่างยิ่ง ส่วนประกอบของเนมสเปซ System. Diagnostics ช่วยให้คุณสามารถโต้ตอบกับกระบวนการ บันทึกเหตุการณ์ และตัวนับประสิทธิภาพได้ ตัวอย่างเช่น คุณสามารถปิดโปรแกรมจาก Visual Basic โดยใช้คลาส Process
จำเป็น
ไมโครซอฟต์วิชวลสตูดิโอ
คำแนะนำ
ขั้นตอนที่ 1
อิมพอร์ตเนมสเปซ System, System. Diagnostics และ System. Threading เพิ่มบรรทัดของรหัสต่อไปนี้ที่จุดเริ่มต้นของโมดูล:
ระบบนำเข้า
นำเข้า System. Diagnostics
นำเข้า System. Threading
นี่เป็นเพียงเพื่อความสะดวกในการใช้ส่วนประกอบที่เกี่ยวข้องกับเนมสเปซเหล่านี้
ขั้นตอนที่ 2
รับข้อมูลของกระบวนการที่จะปิด ใช้อ็อบเจ็กต์คลาส System. Diagnostics. Process ประกาศตัวแปรของคลาสนี้:
Dim oProc เป็นกระบวนการ
จากนั้นใช้วิธีการบางอย่างเพื่อค้นหากระบวนการที่จำเป็น
ขั้นตอนที่ 3
หากโปรแกรมซึ่งจำเป็นต้องปิดในอนาคตเปิดขึ้นโดยแอปพลิเคชันที่กำลังพัฒนา ให้บันทึกวัตถุที่ส่งคืนโดยวิธี Start เมื่อเริ่มต้น:
oProc = Process. Start ("app.exe")
ขั้นตอนที่ 4
หากคุณต้องการปิดกระบวนการด้วยตัวระบุที่รู้จัก ให้ใช้เมธอด GetProcessById แบบคงที่ของคลาส Process เพื่อรับอ็อบเจ็กต์ที่เกี่ยวข้อง:
oProc = Process. GetProcessById (nID)
โดยที่ nID เป็นตัวระบุตัวเลขของกระบวนการ
ขั้นตอนที่ 5
หากทราบคุณลักษณะบางอย่างของกระบวนการเป้าหมายเท่านั้น ให้ค้นหา รับรายการกระบวนการที่ทำงานบนเครื่องโลคัลเป็นอาร์เรย์ของอ็อบเจ็กต์ของคลาส Process ใช้ GetProcesses (ส่งคืนกระบวนการทั้งหมด) หรือ GetProcessesByName (เฉพาะกระบวนการที่มีชื่อที่กำหนด):
หรี่ aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
แสดงรายการวัตถุอาร์เรย์โดยใช้การวนซ้ำ:
Dim oProc เป็นกระบวนการ
สำหรับแต่ละ oProc ใน aoAllProcesses
'การดำเนินการกับ oProc
ถัดไป
วนรอบคุณสมบัติ MainModule, MainWindowTitle, ProcessName ฯลฯ เพื่อค้นหาวัตถุที่ต้องการ
ขั้นตอนที่ 6
พยายามยุติโปรแกรมโดยส่งข้อความปิดไปยังหน้าต่างหลัก เรียกวิธีการ CloseMainWindow ของวัตถุที่สอดคล้องกับกระบวนการเป้าหมาย หากจำเป็น ให้รอให้แอปพลิเคชันเสร็จสิ้นโดยเรียก WaitForExit เช่น:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
วิธีนี้ไม่รับประกันการสิ้นสุดของโปรแกรม เนื่องจากข้อความปิดหน้าต่างมักถูกประมวลผลและสามารถละเว้นได้
ขั้นตอนที่ 7
รอสักครู่หลังจากเรียก CloseMainWindow เพื่อให้แน่ใจว่าโปรแกรมหยุดทำงาน ใช้วิธีสลีปของคลาสเธรด จากนั้นตรวจสอบสถานะของกระบวนการโดยตรวจสอบคุณสมบัติ HasExited และหากยังไม่เสร็จสิ้น ให้เรียกใช้เมธอด Kill:
กระทู้ สลีป (6000)
oProc.รีเฟรช ()
ถ้าไม่ใช่ oProc. HasExited แล้ว
oProc.ฆ่า ()
จบถ้า
หากต้องการ คุณสามารถสำรวจสถานะของกระบวนการแบบวนซ้ำ โดยแจ้งเตือนผู้ใช้เป็นระยะเพื่อยุติแอปพลิเคชันโดยไม่บันทึกข้อมูล และเฉพาะในกรณีที่คุณตกลงที่จะโทรหา Kill
ขั้นตอนที่ 8
เพิ่มทรัพยากรระบบหลังจากโปรแกรมเสร็จสิ้นโดยใช้วิธีการปิด:
oProc.ปิด ()
ขั้นตอนที่ 9
เพื่อหลีกเลี่ยงข้อผิดพลาดที่ไม่คาดคิดระหว่างการทำงานของแอปพลิเคชัน ให้วางอัลกอริธึมการปิดโปรแกรมทั้งหมดในบล็อก Try-Catch-End Try ใช้การจัดการข้อยกเว้นที่ครบถ้วนพร้อมข้อความวินิจฉัย หากจำเป็น