
Originariamente inviata da
renygade
LA classe process ha la proprietà HasExited che dovrebbe fare al caso tuo
Grazie anche a te, era proprio quello che mi serviva! 
Ora WordPad (se aperto) viene chiuso e subito dopo se ne apre una nuova sessione.
A chi può interessare, ecco la modifica da apportare alla sub del post precedente:
----------------------------------------
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Programma As New Process()
If Aperto = True Then If X.HasExited = False Then
X.Kill() : Aperto = False
End If
End If
If Aperto = False Then Programma.StartInfo.UseShellExecute = False
Programma.StartInfo.FileName = TextBox1.Text REM & " " & TextBox2.Text REM IMPOSSIBILE TROVARE IL FILE SPECIFICATO
Programma.StartInfo.CreateNoWindow = False
Programma.Start()
X = Programma
Aperto = True
End If
End Sub
--------------------------------------
Tuttavia c'è da dire che WordPad è un programma leggerissimo e il tempo necessario a chiudere e riaprire una sua sessione è praticamente inavvertibile. Ma se, invece di WordPad, voglio aprire programmi più corposi (come PhotoShop), il tempo di apertura / chiusura potrebbe risultare eccessivo. C'è un modo per "costringere" Visual Basic a usare sempre la stessa sessione del programma con cui aprire i vari file di competenza?
Tra l'altro (si noti la parte del codice compresa tra i due REM) VisualBasic segnala l'inesistenza del file se tento di aprire WordPad facendo seguire il Path del file di testo RTF (ovviamente presente in TextBox2.Text). Con quale sintassi è possibile aprire un file "associato" a Programma.StartInfo.FileName ? Ho provato facendo precedere il nome del Path del file RTF da un semplice spazio (come nel codice riportato qui sopra, togliendo il REM ) da una virgola, da una barra dritta o inversa, ma il file sembra sempre non esistere (non ho commesso errore di digitazione: ho trascritto con copia/incolla).