RunProgram funktioniert immer nur zeitweise

Anfängerfragen zum Programmieren mit PureBasic.
Sommertv
Beiträge: 68
Registriert: 26.04.2019 10:31
Computerausstattung: Lenovo W500, Debian Stable, Purebasic 5.70 (momentan die Testversion)
Wohnort: Mühldorf am Inn

RunProgram funktioniert immer nur zeitweise

Beitrag von Sommertv »

Hallo,
mit RunProgramm hab ich ständig Probleme.
Wenn ich ein Programme aufrufe (mplayer, ffmpeg, Mencoder) und denen einen Arbeitsstring übergebe funktioniert das bei 10 Aufrufen vielleicht 4-5x, dann muss ich das Programm killen und wenn ich Glück habe gehts danach wieder.
Wenn ich aber eine ausführbare Datei mit dem kompletten String erzeuge z.B.:
mplayer -slave -geometry 470:490 -vf scale= 352x288 -input file=/tmp/mplayer-control /home/internet/Downloads/Movie.mkv
das dann mit RunProgram aufrufe klappt es jedesmal problemlos
Das ist zwar umständlicher aber wenigstens funktionierts damit...
Kann es sein, dass RunProgramm nur halbherzig integriert ist?

Schöne Grüsse
Kurt
Wenn einem die einfachen Dinge net einfallen, klappt's meistens umständlich...
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: RunProgram funktioniert immer nur zeitweise

Beitrag von RSBasic »

Ich kann mir nicht vorstellen, dass es an RunProgram() liegt.
Wie sieht dein Aufruf normalerweise aus?
Benutzt du vielleicht relative Pfade für deine mkv-Datei? SetCurrentDirectory()?
Was passiert, wenn es fehlschlägt? Hängt sich das Programm auf oder gibt es eine Fehlermeldung?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Sommertv
Beiträge: 68
Registriert: 26.04.2019 10:31
Computerausstattung: Lenovo W500, Debian Stable, Purebasic 5.70 (momentan die Testversion)
Wohnort: Mühldorf am Inn

Re: RunProgram funktioniert immer nur zeitweise

Beitrag von Sommertv »

Beispiel:

Code: Alles auswählen

ShellPrg= RunProgram("/usr/bin/mplayer", "-slave -geometry 470:490 -vf scale=352:288 -input file=/tmp/mplayer-control /home/internet/Downloads/Movie.mkv", "",  #PB_Program_Open | #PB_Program_Write | #PB_Program_Read | #PB_Program_Error)           
funktioniert zwar immer, aber damit kann ich keine Dateinamen, Auflösung usw übergeben

Code: Alles auswählen

Movie$ = "-slave -geometry 470:490 -vf scale=352:288 -input file=/tmp/mplayer-control /home/internet/Downloads/Movie.mkv"
ShellPrg= RunProgram("/usr/bin/mplayer", Movie$, "",  #PB_Program_Open | #PB_Program_Write | #PB_Program_Read | #PB_Program_Error)         
funktioniert wenn dann nur zufällig

Code: Alles auswählen

DummyDatei$="/home/internet/MplayerStart"
If CreateFile(0, DummyDatei$)
WriteString(0, "/usr/bin/mplayer " + Movie$)
CloseFile(0)
; Error Handling

ShellPrg= RunProgram("/home/internet/MplayerStart", "", "", #PB_Program_Open | #PB_Program_Write | #PB_Program_Read | #PB_Program_Error)
funktioniert immer
Muss natürlich zuvor MplayerStart ausführbar machen...

--Nachtrag: Eine Fehlermeldung kommt nicht, das Video startet einfach nur nicht, kann sein dass es dann beim 4. oder 5. Aufruf dennoch funktioniert
Wenn einem die einfachen Dinge net einfallen, klappt's meistens umständlich...
Antworten