Announcement

Collapse
No announcement yet.

ProgressBar anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ProgressBar anzeigen

    Hallo!

    Ich habe ein Programm in Visual Basic 2005 Express Edition geschrieben, welches andere auf dem PC installierte Programme öffnet.
    Um nicht den kompletten Code hier rein zu schreiben habe ich nur ein Beispiel geschrieben.

    Code:
    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Call Shell("C:\Programme\ICQ Lite\ICQ Lite.exe")
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Call Shell("C:\Programme\msn messenger\msnmsgr.exe")
        End Sub
    End Class
    Wie kann ich für die Ladezeit der Programme einen ProgressBar anzeigen lassen?

    Danke schonmal im Voraus
    Die Sonne geht auf - Die Sonne geht unter - ich bin wieder drauf, doch irgendwann komm ich runter

  • #2
    Hallo,

    wenn du ein fremdes Prozess startest, ist es sehr Aufwendig Informationen an deine Anwendung über den gestarteten Prozess zu geben.
    Wenn du es haben willst must du sehr tief in die Materie einsteigen. In der MSDN wirst du sicherlich ansätze finden. suche einfach nach Invoke Funktion. Was fertiges was man als Ansatz nehmen könnte habe ich bis jetzt noch nicht gesehen. Überlegts dir ob es dir den Aufwand wert ist.

    Gruß
    Meissner

    Comment


    • #3
      Danke

      Hallo

      Ja den Aufwand möchte ich mir machen, da ich richtig in VB programmieren lernen will....
      Die Sonne geht auf - Die Sonne geht unter - ich bin wieder drauf, doch irgendwann komm ich runter

      Comment


      • #4
        Hallo Newbie,

        der Aufwand liegt hier aber weniger im Programmieraufwand, denn die Schwierigkeit für Dein Problem ist folgendes (und m.E. überhaupt nicht lösbar):

        Du kannst die Fremdprogramme aufrufen, weißt aber definitiv nicht was sie tun. Daher kannst Du deren Programmablauf nicht in Zahlenwerte fassen. Es gäbe 2 Möglichkeiten einen Fortschritt zu verzeichnen: Ladevolumen und Zeiteinheit. Beides ist Dir aber von außerhalb der zu startenden Programme nicht zugänglich.

        Soll heißen: Du kannst nicht sagen, dass ICQ nach 570 KB Speicherallokation fertig geladen ist, denn wenn es z.B. Updates herunterlädt sind es vielleicht 900 Kb (alles fiktive Werte!).

        Du kannst auch nicht sagen, dass ein Programmstart immer 15 Sekunden dauert, denn wenn Windows dementsprechend ausgelastet ist, kannst Du Dich auf diese Werte auch nicht verlassen.

        Du hast also keinerlei Messinstrument hierfür.

        Das was Du machen kannst ist folgendes: Du kannst eine ewig laufende ProgressBar zeigen, ähnlich wie beim Windowsstart, oder bei Kit am Auto ;-)

        Dann könntest Du auch noch hergehen, eine Maximalzeit definieren, bis das Programm gestartet ist, und falls bis dahin noch nicht geschehen, den Prozess demenstsprechend beenden lassen.

        Aber Zahlenwerte, wie Programmstart XY ist zu 40% abgeschlossen kannst Du nur in Deinen selbst programmierten Programmen einbauen, weil Du weißt, was Dein Programm macht.

        Viele Grüße
        _ntr_

        Comment

        Working...
        X