A rugalmas és hatékony programozási nyelv, a Visual Basic. NET, amely a Microsoft. NET platform alkalmazásainak fejlesztésére szolgáló speciálisan létrehozott eszközök egyike, lehetővé teszi az összes képesség teljes körű kihasználását. Különösen a System. Diagnostics névtér összetevői teszik lehetővé a folyamatokkal, eseménynaplókkal és teljesítményszámlálókkal való interakciót. Például bezárhat egy programot a Visual Basicből a Process osztály használatával.
Szükséges
Microsoft Visual Studio
Utasítás
1. lépés
Importálja a Rendszert, a System. Diagnostics és a System. Treading névtereket. Adja hozzá a következő kódsorokat a modul elejéhez:
Importrendszer
Import rendszer. Diagnosztika
Import rendszer. Menet
Ez csak az ezekhez a névterekhez tartozó összetevők használatának kényelmét szolgálja.
2. lépés
A folyamat adatainak lezárása. Használja a System. Diagnostics. Process osztályobjektumot. Nyújtsa be ennek az osztálynak a változóját:
Dim oProc mint folyamat
Ezután valamilyen módszerrel keresse meg a szükséges folyamatot.
3. lépés
Ha a programot, amelyet a jövőben le kell zárni, a fejlesztés alatt álló alkalmazás indítja el, akkor indításkor egyszerűen mentse a Start módszerrel visszaadott objektumot:
oProc = Process. Start ("app.exe")
4. lépés
Ha egy folyamatot ismert azonosítóval kell lezárnia, használja a Process osztály statikus GetProcessById metódusát a megfelelő objektum megszerzéséhez:
oProc = Process. GetProcessById (nID)
Ahol az nID a folyamat numerikus azonosítója.
5. lépés
Ha a célfolyamatnak csak néhány jellemzője ismert, keresse meg. Szerezze be a helyi gépen a Process osztály objektumainak tömbjeként futó folyamatok listáját. Használja a GetProcesses (visszaadja az összes folyamatot) vagy a GetProcessesByName (csak a megadott névvel rendelkező folyamatokat) módszereket:
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Sorolja fel a tömbobjektumokat egy hurok segítségével:
Dim oProc mint folyamat
Minden oProc-ra az aoAllProcessekben
'műveletek az oProc-on
Következő
Húzza át a MainModule, MainWindowTitle, ProcessName stb. Tulajdonságokat. hogy megtalálja a kívánt tárgyat.
6. lépés
Próbáljon megszakítani egy programot úgy, hogy bezár egy üzenetet küld a főablakába. Hívja meg a célfolyamatnak megfelelő objektum CloseMainWindow metódusát. Ha szükséges, várja meg az alkalmazás befejezését a WaitForExit hívásával, például:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Ez a módszer nem garantálja a program leállítását, mivel az ablak bezárás üzenetet gyakran feldolgozzák és figyelmen kívül hagyhatják.
7. lépés
Várjon egy rövid ideig a CloseMainWindow hívása után, hogy megbizonyosodjon arról, hogy a program leáll. Használja a Thread osztály Sleep módját. Ezután ellenőrizze a folyamat állapotát a HasExited tulajdonság vizsgálatával, és ha még nem fejeződött be, hívja meg a Kill metódust:
Menet. Alvó (6000)
oProc. Refresh ()
Ha nem az oProc. HasExited Akkor
oProc. Kill ()
Vége Ha
Kívánt esetben a folyamat állapotát egy ciklusban lekérdezheti, időszakos felszólításokat adva a felhasználónak, hogy az adatok mentése nélkül állítsa le az alkalmazást. És csak akkor, ha beleegyezik, hogy felhívja Killet.
8. lépés
Szabadítson fel rendszererőforrásokat, miután a program befejezte a Bezárás módszert:
oProc. Close ()
9. lépés
Az alkalmazás futtatása során bekövetkező váratlan hibák elkerülése érdekében helyezze a teljes programzáró algoritmust egy Try-Catch-End Try blokkba. Szükség esetén teljes körű kivételkezelést hajtson végre diagnosztikai üzenetekkel.