Abwarten bis Installation abgeschlossen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Abwarten bis Installation abgeschlossen

    Hallo alle zusammen.

    Wie kann ich mein Programm abwarten lassen bis eine Installation abgeschlossen ist, die mein Programm selbst gestartet hat(externe .exe)?
    Ich hab die exe in ein Prozess übergeben welchen ich dann starte. ich habe gelesen das exen ein Exit-code zurückgeben am Ende. Ich glaube "0" ist wenn alles ohne Fehler installiert wurde. Kann ich das Abfragen und dann mein Programm weiter machen lassen ? Mit Schleifen geht es nicht :D hängt sich auf... :thumbsup:

    Grüße
    nawiat
    Mit welchen Code startest du den Process?

    Wenn du es über die Process-Klasse machst:

    Einfach mit Process.WaitForExit() oder mit einer While-Schleife warten bis der Prozess beendet ist und dann mit Process.ExitCode den Exit-Code abfragen

    Jedoch blockieren beide den Thread. Könntest eventuell per Async-Methode machen.
    KaskadekingDE on GitHub :)
    Bitte keine Fragen über Programmierung per PN! Dafür ist das Forum hier.

    Who cares? ¯\_(ツ)_/¯
    Okay geht leider nicht, ich habe es so hier:

    Spoiler anzeigen

    Quellcode

    1. Public Sub ProgrammeInstallieren()
    2. If System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable = True Then
    3. eventHandled = False
    4. If File.Exists(TempPath + "\SSC_Programme\MozillaFirefox_Setup_.exe") = True And InstallMozillaFirefox = 1 Then
    5. FirefoxInstallieren()
    6. InstallMozillaFirefox = 0
    7. Else
    8. InstallMozillaFirefox = 0
    9. ProgrammeInstallieren()
    10. End If
    11. Else
    12. MessageBox.Show("Bitte überprüfen sie ihre Internetverbindung und versuchen sie es erneut!")
    13. End If
    14. End Sub


    dazu das:

    Spoiler anzeigen

    Quellcode

    1. Public Sub FirefoxInstallieren()
    2. Installiert.Text = "MozillaFirefox_Setup_" + AktuelleFirefoxVersionP + ".exe"
    3. If File.Exists(TempPath + "\SSC_Programme\MozillaFirefox_Setup.bat") = False Then
    4. System.IO.File.Create(TempPath + "\SSC_Programme\MozillaFirefox_Setup.bat").Dispose()
    5. Call TextFileAppend("@echo off" + vbNewLine + "start C:\Users\%username%\AppData\Local\Temp\SSC_Programme\MozillaFirefox_Setup_.exe /VERYSILENT /SUPPRESSMSGBOXES /NOICONS /LOG=" + Chr(34) + "C:\Users\Peter\AppData\Local\Temp\SSC_LogFiles\MozillaFirefox_Setup_LogFile.txt" + Chr(34) + " /NOCANCEL /NORESTART /CLOSEAPPLICATIONS", TempPath + "\SSC_Programme\MozillaFirefox_Setup.bat")
    6. End If
    7. ProzessInstallieren = System.Diagnostics.Process.Start(TempPath + "\SSC_Programme\MozillaFirefox_Setup.bat")
    8. InstallFortschritt.Text = "Läd"
    9. System.Threading.Thread.Sleep(1000)
    10. End Sub


    und halt das was er machen soll wenn die Installation abgeschlossen wurde:

    Spoiler anzeigen

    Quellcode

    1. Public Sub ProzessInstallieren_Exited(ByVal sender As Object, ByVal e As System.EventArgs) Handles ProzessInstallieren.Exited
    2. eventHandled = True
    3. MessageBox.Show("Installation abgeschlossen")
    4. End Sub


    Das Problem hierbei ist einfach das er das zwar Installiert aber nie die Meldung "Installiert" bringt XD

    Grüße
    nawiat

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „nawiat“ ()

    nawiat schrieb:

    aber nie die Meldung "Installiert" bringt
    Das geht so:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private WithEvents prc As Process
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. prc = New Process
    5. prc.StartInfo.FileName = "notepad.exe"
    6. prc.EnableRaisingEvents = True
    7. prc.Start()
    8. End Sub
    9. Private Sub prc_exit(sender As Object, e As EventArgs) Handles prc.Exited
    10. MessageBox.Show("Notepad beendet")
    11. End Sub
    12. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!