Ang kakayahang umangkop at makapangyarihang wika sa Visual Visual. NET, na isa sa mga espesyal na nilikha na tool para sa pagbuo ng mga application para sa Microsoft. NET platform, ay nagbibigay-daan sa iyo upang ganap na magamit ang lahat ng mga kakayahan nito. Sa partikular, ang mga bahagi ng System. Ang namespace ng Diagnostics ay nagbibigay-daan sa iyo upang makipag-ugnay sa mga proseso, log ng kaganapan, at counter ng pagganap. Halimbawa, maaari mong isara ang isang programa mula sa Visual Basic gamit ang klase ng Proseso.
Kailangan
Microsoft Visual Studio
Panuto
Hakbang 1
I-import ang System, System. Diagnostics, at System. Pag-Thread ng mga namespace. Idagdag ang mga sumusunod na linya ng code sa simula ng modyul:
Sistema ng Pag-import
Importer System. Diagnostics
Importer na Sistema. Pag-Thread
Ito ay para lamang sa kaginhawaan ng paggamit ng mga sangkap na nauugnay sa mga namespace na ito.
Hakbang 2
Kunin ang data ng proseso upang maisara. Gamitin ang System. Diagnostics. Proseso ng object ng klase. Ipahayag ang isang variable ng klase na ito:
Dim oProc Bilang Proseso
Pagkatapos ay gumamit ng ilang pamamaraan upang mahanap ang kinakailangang proseso.
Hakbang 3
Kung ang programa, na kailangang isara sa hinaharap, ay inilunsad ng application na binuo, pagkatapos ay i-save lamang ang bagay na ibinalik ng pamamaraang Start sa pagsisimula:
oProc = Process. Start ("app.exe")
Hakbang 4
Kung kailangan mong isara ang isang proseso sa isang kilalang identifier, gamitin ang static na pamamaraan ng GetProcessById ng klase ng Proseso upang makuha ang kaukulang bagay:
oProc = Proseso. GetProcessById (nID)
Kung saan ang nID ay ang identic identifier ng proseso.
Hakbang 5
Kung ang ilan lamang sa mga katangian ng proseso ng target ay alam, hanapin ito. Kunin ang listahan ng mga proseso na tumatakbo sa lokal na makina bilang isang hanay ng mga bagay ng klase ng Proseso. Gamitin ang mga GetProcesses (ibabalik ang lahat ng mga proseso) o GetProcessesByName (mga proseso lamang na may ibinigay na pangalan) na mga pamamaraan:
Dim aoAllProcesses Bilang Proseso () = Proseso. GetProcesses ()
Dim aoProcsByName Bilang Proseso () = Process. GetProcessesByName ("app.exe")
Ilista ang mga bagay ng array gamit ang isang loop:
Dim oProc Bilang Proseso
Para sa bawat oProc Sa aoAllProcesses
'mga aksyon sa oProc
Susunod
Mag-loop sa pamamagitan ng mga katangian ng MainModule, MainWindowTitle, ProcessName, atbp. upang hanapin ang nais na bagay.
Hakbang 6
Subukang wakasan ang programa sa pamamagitan ng pagpapadala ng isang malapit na mensahe sa pangunahing window. Tumawag sa paraan ng CloseMainWindow ng bagay na naaayon sa proseso ng target. Kung kinakailangan, hintaying makumpleto ang application sa pamamagitan ng pagtawag sa WaitForExit, halimbawa:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Ang pamamaraang ito ay hindi ginagarantiyahan ang pagwawakas ng programa, dahil ang window close message ay madalas na naproseso at maaaring balewalain.
Hakbang 7
Maghintay para sa isang maikling dami ng oras pagkatapos tumawag sa CloseMainWindow upang matiyak na ang programa ay nagtatapos. Gamitin ang paraan ng pagtulog ng klase ng Thread. Pagkatapos suriin ang katayuan ng proseso sa pamamagitan ng pagsusuri sa pag-aari ng HasExited at, kung hindi pa ito natapos, tawagan ang Kill na pamamaraan:
Thread. Tulog (6000)
oProc. Refresh ()
Kung hindi oProc. HasExited Pagkatapos
oProc. Patayin ()
Tapusin kung
Kung ninanais, maaari mong i-poll ang katayuan ng proseso sa isang loop, na naglalabas ng mga pana-panahong senyas sa gumagamit na wakasan ang application nang hindi nagse-save ng data. At kung papayag ka lang na tawagan si Kill.
Hakbang 8
Libre ang mga mapagkukunan ng system matapos ang programa gamit ang Close mode:
oProc. Close ()
Hakbang 9
Upang maiwasan ang hindi inaasahang mga error habang isinasagawa ang application, ilagay ang buong algorithm ng pagsasara ng programa sa isang block na Subukan-Makibalita-Tapos na Subukan. Ipatupad ang ganap na paghawak ng pagbubukod gamit ang mga mensahe sa diagnostic, kung kinakailangan.