Ciao a tutti, vi leggo da tanto ma scrivo per la prima volta, quindi innanzitutto complimenti!!!
Spero che mi possiate aiutare: ho creato un piccola applicazione che utilizzo per copiare una serie di file e cartelle prima di lanciare un applicativo (un classico .exe) esterno. Funziona tutto ma volevo creare un form di log da aprire in background.
L'ho definito...
codice:
Public frmLog As New LogLancio
...quando avvio l'applicazione apro il pannello...
...ad ogni operazione scrivo il log sul form LogLancio (contiene una ListView)...
codice:
frmLog.InserisciTesto("TESTO DI PROVA")
codice:
Public Class LogLancio
Friend Sub InserisciTesto(ByVal Testo As String)
RecuperoDataOraNow()
Dim RigaListaLog As ListViewItem
RigaListaLog = ListaLOG.Items.Add(YYYY & "-" & MM & "-" & DD)
RigaListaLog.SubItems.Add(HS & ":" & MS & ":" & SS)
RigaListaLog.SubItems.Add(Testo)
RigaListaLog.Selected = True
RigaListaLog.EnsureVisible()
RigaListaLog = Nothing
End Sub
End Class
...e avvio finalmente il mio eseguibile esterno...
codice:
ShellAndWait("MioEseguibile.exe")
codice:
Friend Sub ShellAndWait(ByVal ProcessPath As String)
Dim objProcess As System.Diagnostics.Process
Try
objProcess = New System.Diagnostics.Process()
objProcess.StartInfo.FileName = ProcessPath
objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
objProcess.Start()
objProcess.WaitForExit()
objProcess.Close()
Catch
MsgBox("Errore nell'avvio dell'applicazione " & ProcessPath & ".", MsgBoxStyle.Critical)
End Try
End Sub
Funziona tutto, il problema, se così lo si vuol chiamare, è che il form di LOG si apre ma non è possibile toccarlo finché MioEseguibile è in esecuzione mentre io vorrei poterlo ingrandire, ridurre ad icona, cambiargli la dimensione o selezionare una riga della ListView. Potrei eseguire MioEseguibile in un altro thread ma ho bisogno che il form principale da cui viene lanciato rimanga in attesa in quanto all'uscita deve fare delle altre operazioni subordinate all'esecuzione di MioEseguibile.
Idee?
Grazie mille ancora e buona serata a tutti.
Marco