question sur process.exited
Bonjour à tous,
Je sèche depuis quelques jours sur cette problèmatique:
Je fais un programme pour paramétrer un batch, et également installer sendmail. Tout ce passe parfaitement bien, sauf que ! :aie:
L'installation de Sendmail se déroule et me rend la main, tout va bien. Mais j'aimerais avoir une progression, soit via une progressbar, ou tout simplement par une info modifiée en temps réel sur un label.
Que je passe par un backgroundWorker ou un simple process, je ne parviens pas à capturer "proprement" cette fin d'installation ...
Par exemple, dans le code ci dessous, je clique que le bouton, le label est modifié, sendmail s'installe, et une messagebox s'affiche. Dans ce cas impossible de modifer le label pour afficher "installation terminée". Si je décommente le label1.text dans ProcessExited, tout se referme !
Comment faire pour palier à ce problème ?
Merci d'avance ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = "Etat du process : Installation en cours"
'*************************************************************
' Création d'un nouveau process
' Installation de SendMail
Dim path As String
path = "c:\pgi01\SauvePgi\Setup\sendmail18.exe"
Dim myProcess As Process
myProcess = System.Diagnostics.Process.Start(path, "/silent")
'Fin installation SendMail
'*************************************************************
' Autorise le process à retourner un évènement
myProcess.EnableRaisingEvents = True
' Surveille l'évènement Exited
AddHandler myProcess.Exited, _
AddressOf Me.ProcessExited
End Sub
Private Sub ProcessExited(ByVal sender As Object, _
ByVal e As System.EventArgs)
MsgBox("terminé")
'Label1.Text = "Installation terminée ..."
End Sub |