El llenguatge de programació flexible i potent Visual Basic. NET, que és una de les eines especialment creades per al desenvolupament d’aplicacions per a la plataforma Microsoft. NET, us permet utilitzar totes les seves capacitats. En particular, els components de l’espai de noms System. Diagnostics us permeten interactuar amb processos, registres d’esdeveniments i comptadors de rendiment. Per exemple, podeu tancar un programa de Visual Basic mitjançant la classe Process.
Necessari
Microsoft Visual Studio
Instruccions
Pas 1
Importeu els espais de noms System, System. Diagnostics i System. Threading. Afegiu les línies de codi següents al començament del mòdul:
Sistema d’importacions
Sistema d’importacions. Diagnòstic
Sistema d’importacions
Això és només per la comoditat d’utilitzar els components associats a aquests espais de noms.
Pas 2
Obteniu que es tanquin les dades del procés. Utilitzeu l’objecte de classe System. Diagnostics. Process. Declareu una variable d'aquesta classe:
Dim oProc com a procés
A continuació, utilitzeu algun mètode per trobar el procés requerit.
Pas 3
Si el programa, que haurà de ser tancat en el futur, s'inicia amb l'aplicació que s'està desenvolupant, simplement deseu l'objecte retornat pel mètode Start a l'inici:
oProc = Process. Start ("app.exe")
Pas 4
Si heu de tancar un procés amb un identificador conegut, utilitzeu el mètode estàtic GetProcessById de la classe Process per obtenir l'objecte corresponent:
oProc = Process. GetProcessById (nID)
On nID és l’identificador numèric del procés.
Pas 5
Si només es coneixen algunes de les característiques del procés objectiu, cerqueu-lo. Obteniu la llista de processos que s’executen a la màquina local com a matriu d’objectes de la classe Process. Utilitzeu els mètodes GetProcesses (retorna tots els processos) o GetProcessesByName (només els processos amb el nom donat):
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Enumereu els objectes de matriu mitjançant un bucle:
Dim oProc com a procés
Per a cada oProc a aoAllProcesses
'accions a oProc
Pròxim
Passeu per les propietats MainModule, MainWindowTitle, ProcessName, etc. per trobar l’objecte desitjat.
Pas 6
Intenteu finalitzar el programa enviant un missatge de tancament a la finestra principal. Truqueu al mètode CloseMainWindow de l'objecte corresponent al procés de destinació. Si cal, espereu que es completi l'aplicació trucant a WaitForExit, per exemple:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Aquest mètode no garanteix la finalització del programa, ja que el missatge de tancament de la finestra sovint es processa i es pot ignorar.
Pas 7
Espereu poc temps després de trucar a CloseMainWindow per assegurar-vos que el programa finalitza. Utilitzeu el mètode Sleep de la classe Thread. A continuació, comproveu l'estat del procés examinant la propietat HasExited i, si no ha finalitzat, truqueu al mètode Kill:
Thread. Sleep (6000)
oProc. Refresh ()
Si no, oProc. HasExited Aleshores
oProc. Kill ()
Finalitza If
Si ho desitgeu, podeu consultar l'estat del procés en forma de bucle, emetent avisos periòdics a l'usuari per finalitzar l'aplicació sense desar dades. I només si accepteu trucar a Kill.
Pas 8
Allibereu els recursos del sistema després que finalitzi el programa amb el mètode Close:
oProc. Close ()
Pas 9
Per evitar errors inesperats durant l'execució de l'aplicació, col·loqueu tot l'algorisme de tancament del programa en un bloc Try-Catch-End Try. Implementeu, si cal, un tractament complet d’excepcions amb missatges de diagnòstic.