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 !
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager