Condividi tramite


Procedura: arrestare i processi

Aggiornamento: novembre 2007

Per arrestare un processo con un componente Process sono disponibili due metodi. Il metodo da utilizzare dipende dal tipo di processo da arrestare:

  • Se il processo dispone di un'interfaccia utente grafica, chiamare il metodo CloseMainWindow. Questo metodo consente di inviare una richiesta di chiusura alla finestra principale del processo e funziona in modo analogo al comando Chiudi dell'interfaccia utente. L'utilizzo di questo metodo consente al programma di destinazione di chiedere all'utente di salvare tutti i dati non salvati durante l'operazione di pulizia.

  • Se il processo non dispone di un'interfaccia utente, chiamare il metodo Kill.

    Attenzione:

    La chiamata al metodo Kill implica l'arresto immediato del processo senza la richiesta di salvataggio dei dati modificati. Tutti i dati non salvati andranno persi.

Se si desidera che il componente riceva una notifica in caso di arresto di un processo da parte del sistema operativo, impostare la proprietà EnableRaisingEvents su true. La proprietà EnableRaisingEvents viene utilizzata nell'elaborazione asincrona per notificare all'applicazione che un processo è terminato.

Per arrestare un processo

  1. Chiamare il metodo GetProcessesByName per recuperare il processo che si desidera arrestare.

    Per ulteriori informazioni, vedere Procedura: eseguire l'associazione a processi esistenti.

  2. Chiamare uno dei seguenti metodi:

    • Se il processo dispone di un'interfaccia utente, chiamare il metodo CloseMainWindow.

    • Se il processo è privo di finestre, chiamare il metodo Kill.

    Nell'esempio riportato di seguito viene illustrato come chiamare il metodo CloseMainWindow per chiudere tutte le istanze del Blocco note correntemente in esecuzione su un computer locale.

    Dim myProcesses() As Process
    Dim myProcess As Process
    ' Returns array containing all instances of "Notepad".
    myProcesses = Process.GetProcessesByName("Notepad")
    For Each myProcess In myProcesses
        myProcess.CloseMainWindow()
    Next
    
         Process[] myProcesses;
            // Returns array containing all instances of Notepad.
            myProcesses = Process.GetProcessesByName("Notepad");
            foreach (Process myProcess in myProcesses)
            {
                myProcess.CloseMainWindow();
            }
    

Vedere anche

Attività

Procedura: eseguire l'associazione a processi esistenti

Concetti

Introduzione al monitoraggio e alla gestione di processi Windows

Altre risorse

Gestione di processi