Come Chiudere Un Programma Da Visual Basic

Sommario:

Come Chiudere Un Programma Da Visual Basic
Come Chiudere Un Programma Da Visual Basic

Video: Come Chiudere Un Programma Da Visual Basic

Video: Come Chiudere Un Programma Da Visual Basic
Video: Tutorial 66 - Aprire e chiudere programmi via codice (VB.NET) 2024, Dicembre
Anonim

Il linguaggio di programmazione flessibile e potente Visual Basic. NET, essendo uno degli strumenti creati appositamente per lo sviluppo di applicazioni per la piattaforma Microsoft. NET, consente di utilizzare appieno tutte le sue capacità. In particolare, i componenti dello spazio dei nomi System. Diagnostics consentono di interagire con processi, registri eventi e contatori delle prestazioni. Ad esempio, è possibile chiudere un programma da Visual Basic utilizzando la classe Process.

Come chiudere un programma da Visual Basic
Come chiudere un programma da Visual Basic

Necessario

Microsoft Visual Studio

Istruzioni

Passo 1

Importare gli spazi dei nomi System, System. Diagnostics e System. Threading. Aggiungi le seguenti righe di codice all'inizio del modulo:

Sistema di importazione

Importa System. Diagnostics

Importa System. Threading

Questo è solo per la comodità di utilizzare i componenti associati a questi spazi dei nomi.

Passo 2

Ottieni i dati del processo da chiudere. Utilizzare l'oggetto classe System. Diagnostics. Process. Dichiara una variabile di questa classe:

Dim oProc As Process

Quindi utilizzare un metodo per trovare il processo richiesto.

Passaggio 3

Se il programma, che dovrà essere chiuso in futuro, viene avviato dall'applicazione in fase di sviluppo, è sufficiente salvare l'oggetto restituito dal metodo Start all'avvio:

oProc = Process. Start ("app.exe")

Passaggio 4

Se è necessario chiudere un processo con un identificatore noto, utilizzare il metodo statico GetProcessById della classe Process per ottenere l'oggetto corrispondente:

oProc = Process. GetProcessById (nID)

Dove nID è l'identificatore numerico del processo.

Passaggio 5

Se sono note solo alcune delle caratteristiche del processo di destinazione, cercarlo. Ottieni l'elenco dei processi in esecuzione sulla macchina locale come un array di oggetti della classe Process. Utilizzare i metodi GetProcesses (restituisce tutti i processi) o GetProcessesByName (solo i processi con il nome specificato):

Dim aoAllProcesses As Process () = Process. GetProcesses ()

Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")

Elenca gli oggetti dell'array usando un ciclo:

Dim oProc As Process

Per ogni oProc in aoAllProcesses

'azioni su oProc

Prossimo

Scorri le proprietà MainModule, MainWindowTitle, ProcessName, ecc. per trovare l'oggetto desiderato.

Passaggio 6

Prova a terminare il programma inviando un messaggio di chiusura alla sua finestra principale. Chiama il metodo CloseMainWindow dell'oggetto corrispondente al processo di destinazione. Se necessario, attendi il completamento dell'applicazione chiamando WaitForExit, ad esempio:

oProc. CloseMainWindow ()

oProc. WaitForExit ()

Questo metodo non garantisce la chiusura del programma, in quanto il messaggio di chiusura della finestra viene spesso elaborato e può essere ignorato.

Passaggio 7

Attendere un breve periodo di tempo dopo aver chiamato CloseMainWindow per assicurarsi che il programma venga terminato. Usa il metodo Sleep della classe Thread. Quindi controlla lo stato del processo esaminando la proprietà HasExited e, se non è terminato, chiama il metodo Kill:

Filo. Sonno (6000)

oProc. Aggiorna ()

Se non oProc. HasExited Then

oProc. Kill ()

Finisci se

Se lo si desidera, è possibile eseguire il polling dello stato del processo in un ciclo, inviando richieste periodiche all'utente di terminare l'applicazione senza salvare i dati. E solo se accetti di chiamare Kill.

Passaggio 8

Liberare risorse di sistema al termine del programma utilizzando il metodo Close:

oProc. Chiudi ()

Passaggio 9

Per evitare errori imprevisti durante l'esecuzione dell'applicazione, posizionare l'intero algoritmo di chiusura del programma in un blocco Try-Catch-End Try. Se necessario, implementare la gestione completa delle eccezioni con messaggi di diagnostica.

Consigliato: