1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Progressbar einrichten? Vb .net

Discussion in 'Programmieren' started by josias12, Oct 14, 2009.

Thread Status:
Not open for further replies.
  1. josias12

    josias12 Byte

    Hallo,

    ich programmiere mir gerade eine Gui zu einen Konsolenprogramm.(genauer gesagt ist es rtmpdump, mit den man ein RTMP-Stream herunterladen kann) Soweit habe ich alles mit den Parametern.:rolleyes: Nun will ich aber noch eine Progressbar haben, um den Status zu sehen.(von den Download) Aber wie richte ich die Progressbar ein damit sie richtig funktioniert?
    Die Konsolenanwendung zeigt den Status nach diesen Musteraktualisiert etwa jede Sekunde)
    1243 KB <3,8%>

    Wie kann ich den Downloadstatus einbinden?:confused:

    lg josias12
     
  2. kazhar

    kazhar Viertel Gigabyte

    über die windows api funktioniert es so:

    * eine pipe erzeugen
    * die pipe in die startupinfo als standardout eintragen
    * rtmpdump per createprocess (natürlich mit der startupinfo) starten
    * regelmäßig die pipe per fileread auslesen und auswerten
     
    Last edited: Oct 14, 2009
  3. josias12

    josias12 Byte

    hab ich jetzt nicht ganz verstanden. Also am besten(bin noch nicht so erfahren) jemand gibt mir gleich den Code. Meine Angaben:
    -habe rtmpdump.exe über Befehl shell gestartet
    -rtmpdump.exe zeigt so an 1243KB <12,8%>
    -Das soll in die Progressbar1

    lg josias12
     
  4. josias12

    josias12 Byte

    kann mir da niemand mal schnell helfen?
     
  5. VB-Coder

    VB-Coder Megabyte

    Wie wäre es wenn du mal deinen Code zeigst ? Dann kann man dir auch gezielt helfen.

    Ich kenne rtmpdump jetzt nicht, aber wie du schon schreibst ist es eine Konsolenanwendung, die jede Sekunde ihren Status aktuallisiert. Demzufolge ist die erste Frage: Hast du den aktuellen Status schon in VB abgefragt und ihn ggf. in einer Variable ? Falls ja ist der Rest ein Kinderspiel. Falls nein solltest du erstmal dieses Problem lösen und dir den aktuellen Status in dein VB Programm holen um es dann entsprechend weiter zu verarbeiten.
     
  6. josias12

    josias12 Byte

    Ich habe eine Textbox3 in der dann die Parameter stehen:
    z.B. -o "C:\Videos\test.flv" -r "rtmp://wasweissich.net"
    und dann habe ich ein Download Button mit den Event:
    Process.Start("rtmpdump.exe " & TextBox3.Text)

    Funktioniert soweit auch. Dann startet die RTMPdump.exe und lädt es herunter. Nach dem Muster zeigt sie den aktuellen Status an:

    1084 KB <42,4%>

    Das soll in eine ProgressBar. Ich hab aber überhaupt keinen Plan wie ich das machen soll.

    lg josias12.
     
  7. VB-Coder

    VB-Coder Megabyte

    lass mir mal die anwendung rtmpdump zukommen. denn ich find nirgendwo einen download für das ganze.

    wäre nämlich ungemein praktisch wenn man die anwendung hat zum testen ;)
     
  8. josias12

    josias12 Byte

    so hab ich hochgeladen(mit source und binary)
    http://ul.to/2kaiq4
    Dazu soll die Progressbar
     
  9. VB-Coder

    VB-Coder Megabyte

    okay ich schaus mir an, sobald ich die zeit dazu finde und seh was sich machen lässt
     
  10. josias12

    josias12 Byte

    Kann hier mir jemand überhaupt helfen, oder bastelt ihr Tag und Nacht dra rum?:confused:
     
  11. kazhar

    kazhar Viertel Gigabyte

  12. josias12

    josias12 Byte

    tut mir Leid das ich gepusht habe, aber irgendwie kann ich damit nichts anfangen.
    Kann mir jemand den Code dafür geben?:
    -rtmpdump.exe starten (ist eine Konsolenanwendung, Screenshot angehangen)
    Diese exe zeigt den Status nach diesen Muster an : 8249 KB <62,9%>
    -Das soll in die Progressbar1(Der Fortschritt)
    Es ist mir egal wie, Hauptsache es geht!

    Danke

    lg josias12
     

    Attached Files:

    Last edited: Oct 17, 2009
  13. josias12

    josias12 Byte

    So, hab mich jetzt da richtig reingedacht, aber irgendwie funktioniert das nicht. Wer kanns verbessern?
    Code:
    Dim myProcess As Process = New Process()
        
            myProcess.StartInfo.UseShellExecute = False
            myProcess.StartInfo.CreateNoWindow = True
            myProcess.StartInfo.RedirectStandardInput = True
            myProcess.StartInfo.RedirectStandardOutput = True
            myProcess.StartInfo.RedirectStandardError = True
            myProcess.Start()
    
            Dim sIn As StreamWriter = myProcess.StandardInput
            Dim sOut As StreamReader = myProcess.StandardOutput
            Dim sErr As StreamReader = myProcess.StandardError
            sIn.AutoFlush = True
            sIn.Write("dir c:\windows\system32\*.com" & System.Environment.NewLine)
            sIn.Write("exit" & System.Environment.NewLine)
    
            If Not myProcess.Ha***ited Then
                myProcess.Kill()
            End If
    
            sIn.Close()
            sOut.Close()
            sErr.Close()
            myProcess.Close()
            Dim my1Process As Process = New Process()
    
            myProcess.StartInfo.FileName = "rtmpdump.exe " + TextBox3.Text
            myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
            myProcess.EnableRaisingEvents = True
            ProgressBar1.Value = Int(Fortschritt(sOut.ToString) * ProgressBar1.Maximum / 100)
    Und das ist die Funktion Fortschritt
    Code:
    Dim Data() As String = split(Input, "<")
            Data(1) = replace(Data(1), "%>", "")
            Return Data(1)
     
  14. kazhar

    kazhar Viertel Gigabyte

    merkwürdig, dass es nicht funktioniert :rolleyes:

    immerhin startest du erstmal GARKEIN programm,
    myProcess.StartInfo.FileName =????

    tust so als wäre es nach wie vor der command prompt,
    sIn.Write("dir c:\windows\system32\*.com" & System.Environment.NewLine)
    sIn.Write("exit" & System.Environment.NewLine)


    würgst es einfach mal preventiv hart ab
    If Not myProcess.HasExited Then
    myProcess.Kill()
    End If


    und dann machst du erst recht dein eigenes ding ohne io redirection....
     
Thread Status:
Not open for further replies.

Share This Page