Moslashuvchan va kuchli dasturlash tili Visual Basic. NET, Microsoft. NET platformasi uchun dasturlarni ishlab chiqish uchun maxsus yaratilgan vositalardan biri bo'lib, uning barcha imkoniyatlaridan to'liq foydalanishga imkon beradi. Xususan, System. Diagnostics nom maydonining tarkibiy qismlari jarayonlar, hodisalar jurnallari va ishlash hisoblagichlari bilan o'zaro aloqada bo'lishga imkon beradi. Masalan, Visual Basic dasturidan Process sinfidan foydalanib dasturni yopishingiz mumkin.
Kerakli
Microsoft Visual Studio
Ko'rsatmalar
1-qadam
Tizim, System. Diagnostics va System. Threading nomlarini import qiling. Modulning boshiga quyidagi kod satrlarini qo'shing:
Import tizimi
Import tizimi. Diagnostika
Import tizimi
Bu faqat ushbu ism maydonlari bilan bog'liq komponentlardan foydalanish qulayligi uchun.
2-qadam
Yopilishi kerak bo'lgan jarayon ma'lumotlarini oling. System. Diagnostics. Process sinf ob'ektidan foydalaning. Ushbu sinf o'zgaruvchisini e'lon qiling:
Jarayon sifatida xiralashgan oProc
Keyin kerakli jarayonni topish uchun biron bir usuldan foydalaning.
3-qadam
Agar kelajakda yopilishi kerak bo'lgan dastur ishlab chiqilayotgan dastur tomonidan ishga tushirilsa, ishga tushirish vaqtida "Start" usuli bilan qaytarilgan ob'ektni saqlang:
oProc = Process. Start ("app.exe")
4-qadam
Agar sizga ma'lum identifikatorga ega bo'lgan jarayonni yopish kerak bo'lsa, tegishli ob'ektni olish uchun Process sinfining statik GetProcessById usulidan foydalaning:
oProc = Process. GetProcessById (nID)
Bu erda nID - jarayonning raqamli identifikatori.
5-qadam
Maqsadli jarayonning ba'zi bir xususiyatlari ma'lum bo'lsa, uni qidirib toping. Mahalliy mashinada Process sinfining ob'ektlari qatori sifatida ishlaydigan jarayonlar ro'yxatini oling. GetProcesses (barcha jarayonlarni qaytaradi) yoki GetProcessesByName (faqat nomi berilgan jarayonlar) usullaridan foydalaning:
Dim aoAllProcesses Process () = Process. GetProcesses () sifatida
Dim aoProcsByName Process () = Process. GetProcessesByName ("app.exe") sifatida xiralashgan
Massiv ob'ektlarini tsikl yordamida ro'yxatlang:
Dim oProc jarayon sifatida
Har bir oProc uchun aoAllProcesses
oProc-dagi harakatlar
Keyingisi
MainModule, MainWindowTitle, ProcessName va boshqalar xususiyatlarini ko'rib chiqing. kerakli ob'ektni topish uchun.
6-qadam
Dasturni tugatishga harakat qiling, uning asosiy oynasiga yaqin xabar yuboring. Maqsad jarayoniga mos keladigan ob'ektning CloseMainWindow usulini chaqiring. Agar kerak bo'lsa, WaitForExit-ga qo'ng'iroq qilib, dastur tugashini kuting, masalan:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Ushbu usul dasturni to'xtatilishini kafolatlamaydi, chunki oynani yopish haqidagi xabar tez-tez qayta ishlanadi va uni e'tiborsiz qoldirish mumkin.
7-qadam
Dastur tugashini ta'minlash uchun CloseMainWindow-ga qo'ng'iroq qilgandan so'ng qisqa vaqtni kuting. Thread sinfining Sleep usulidan foydalaning. Keyin HasExited xususiyatini tekshirib, jarayonning holatini tekshiring va agar u tugamagan bo'lsa, Kill usulini chaqiring:
Uyqu (6000)
oProc. Refresh ()
Agar yo'q bo'lsa oProc. HasExited Keyin
oProc. Kill ()
Agar tugatish
Agar xohlasangiz, jarayonning holatini pastadir ichida so'roq qilishingiz mumkin, foydalanuvchiga vaqti-vaqti bilan ma'lumotni saqlamasdan dasturni bekor qilish to'g'risida ko'rsatmalar berasiz. Va agar siz Kill-ga qo'ng'iroq qilishga rozi bo'lsangiz.
8-qadam
Yopish usuli yordamida dastur tugagandan so'ng tizim resurslarini bo'shating:
oProc. Close ()
9-qadam
Ilovani bajarish paytida kutilmagan xatolarga yo'l qo'ymaslik uchun dasturni yopish algoritmini Try-Catch-End Try blokiga joylashtiring. Agar kerak bo'lsa, diagnostika xabarlari bilan to'liq istisno bilan ishlashni amalga oshiring.