Externes Programm mit Leerzeichen vor Paramatern aufrufen?

Anfängerfragen zum Programmieren mit PureBasic.
Jet1199
Beiträge: 29
Registriert: 06.03.2005 00:33

Externes Programm mit Leerzeichen vor Paramatern aufrufen?

Beitrag von Jet1199 »

Hallo,
ich versuche mit RunProgram ein Programm incl. Parametern (mit Leerzeichen getrennt) aufzurufen. Folgender Programmschnipsel:

x=RunProgram("c:\lha e "+vsource$+"\"+datei$+" *.dat")

Das erzeugt den Aufruf c:\lha e \\jens\x\1234 *.dat
-> Die gepackten *.dat-Dateien aus 1234.lzh sollen ausgepackt werden.

Windows bringt mir den Fehler, daß das aufgerufene Programm nicht gefunden wird (vermutlich sucht es nicht nach c:\lha, sondern nach der ganzen Zeile als Programmname.
Diese Zeile ins Ausführen-Feld von Windows eingegeben funktioniert alles.

Ausweg könnte sein, diese Zeile in eine Datei zu schreiben, und diese BAT-Datei dann aufzurufen. Gibt's bessere Wege?

Die Windows-Auspack-Funktionen über PB anzusprechen bin ich zu viel Neuling, muß wohl diesen DOS-Umweg gehen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Schau dir mal die restlichen Parameter von [c]RunProgram()[/c] an.
Vielleicht hilft dir das weiter.
[c]Ergebnis = RunProgram(DateiName$, [, Parameter$, ArbeitsVerzeichnis$ [, Flags]])[/c]
Jet1199
Beiträge: 29
Registriert: 06.03.2005 00:33

Beitrag von Jet1199 »

Danke Quick-Nic :)
Des Rätsels Lösung ist das Trennen von Programmaufruf und Parametern.
x=runprogram(prgname$,parameter$,"",1) funktioniert.

Trotz Deines Hinweises über die schönen Beispiele in der Hilfe: Betriebsblindheit und verbohrte Wege zur falschen Lösung bleiben. Das war bei den unterschiedlichen Event-Abfragen genauso wie bei der Abtrennung der Übergabeparameter.

Jedenfalls Danke, es läuft ... wieder ein Schritt vorwärts :allright:
Antworten