Quote Originariamente inviata da renygade Visualizza il messaggio
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).