Bahasa pengaturcaraan Visual Basic. NET yang fleksibel dan hebat, menjadi salah satu alat yang dibuat khas untuk mengembangkan aplikasi untuk platform Microsoft. NET, membolehkan anda menggunakan sepenuhnya kemampuannya. Khususnya, komponen ruang nama Sistem. Diagnostik membolehkan anda berinteraksi dengan proses, log peristiwa, dan kaunter prestasi. Sebagai contoh, anda boleh menutup program dari Visual Basic menggunakan kelas Proses.
Perlu
Microsoft Visual Studio
Arahan
Langkah 1
Import Sistem, Sistem. Diagnostik, dan Sistem. Mengambil ruang nama. Tambahkan baris kod berikut ke permulaan modul:
Sistem Import
Sistem Import. Diagnostik
Sistem Import. Threading
Ini hanya untuk kemudahan menggunakan komponen yang berkaitan dengan ruang nama ini.
Langkah 2
Dapatkan data proses yang akan ditutup. Gunakan objek kelas System. Diagnostics. Process. Menyatakan pemboleh ubah kelas ini:
Dim oProc Sebagai Proses
Kemudian gunakan beberapa kaedah untuk mencari proses yang diperlukan.
Langkah 3
Sekiranya program, yang perlu ditutup pada masa akan datang, dilancarkan oleh aplikasi yang sedang dikembangkan, maka simpan objek yang dikembalikan dengan kaedah Start pada permulaan:
oProc = Process. Start ("app.exe")
Langkah 4
Sekiranya anda perlu menutup proses dengan pengecam yang diketahui, gunakan kaedah GetProcessById statik dari kelas Proses untuk mendapatkan objek yang sesuai:
oProc = Process. GetProcessById (nID)
Di mana nID adalah pengenal angka proses.
Langkah 5
Sekiranya hanya beberapa ciri proses sasaran yang diketahui, cari. Dapatkan senarai proses yang berjalan di mesin tempatan sebagai pelbagai objek kelas Proses. Gunakan kaedah GetProcesses (mengembalikan semua proses) atau GetProcessesByName (hanya proses dengan nama yang diberikan):
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Senaraikan objek array menggunakan gelung:
Dim oProc Sebagai Proses
Untuk Setiap OProc Dalam aoAllProcesses
'tindakan di oProc
Seterusnya
Teliti sifat-sifat MainModule, MainWindowTitle, ProcessName, dll. untuk mencari objek yang dikehendaki.
Langkah 6
Cuba tamatkan program dengan menghantar pesanan dekat ke tetingkap utamanya. Panggil kaedah CloseMainWindow objek yang sesuai dengan proses sasaran. Sekiranya perlu, tunggu aplikasi selesai dengan memanggil WaitForExit, misalnya:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Kaedah ini tidak menjamin penghentian program, kerana pesanan tutup tetingkap sering diproses dan dapat diabaikan.
Langkah 7
Tunggu sebentar setelah memanggil CloseMainWindow untuk memastikan program ini tamat. Gunakan kaedah Tidur kelas Thread. Kemudian periksa status proses dengan memeriksa harta HasExited dan, jika belum selesai, hubungi kaedah Bunuh:
Benang. Tidur (6000)
oProc. Refresh ()
Sekiranya tidak oProc. HasExited Kemudian
oProc. Kill ()
Tamat Sekiranya
Sekiranya dikehendaki, anda dapat meninjau status proses secara terus-menerus, mengeluarkan arahan berkala kepada pengguna untuk menghentikan aplikasi tanpa menyimpan data. Dan hanya jika anda bersetuju untuk memanggil Kill.
Langkah 8
Kosongkan sumber sistem setelah program selesai menggunakan kaedah Tutup:
oProc. Close ()
Langkah 9
Untuk mengelakkan kesilapan yang tidak dijangka semasa pelaksanaan aplikasi, letakkan keseluruhan algoritma penutupan program dalam blok Try-Catch-End Try. Laksanakan pengendalian pengecualian sepenuhnya dengan mesej diagnostik, jika perlu.