ts-soft hat geschrieben:Code: Alles auswählen
RunProgram("EncFS", #DQUOTE$ + "PASSWORT|encfs Y:\Encryption Z:\ -S" + #DQUOTE$, "", #PB_Program_Hide | #PB_Program_Open)
Wobei ich mir jetzt nicht sicher bin, ob #PB_Program_Open für Hide erforderlich ist, #DQUOTE ist evtl. auch
falsch, einfach probieren.
Gruß
Thomas
Ich denke ich sehe da das Problem. Das Zeichen "|" ist für Piping und leitet eine Eingabe direkt an eine Ausgabe um. Mit einer .bat funktioniert dies ja wunderbar, doch wenn du "EncFS" mit dem oberen Befehl startest, wird das Programm komplett falsche Parameter erhalten, da PureBasic dieses Pipingzeichen logischerweise nicht beachtet. (Muss es auch nicht, seie dazu angemerkt)
Ich habe mir dein Programm genauer angeschaut und dabei bemerkt, dass es das Passwort per stdin einliest. Um in PureBasic den gewünschten Effekt zu erreichen, musst du also so vorgehen:
Code: Alles auswählen
PID = RunProgram("EncFS", "C:\Crypted C:\plain -S", "", #PB_Program_Hide | #PB_Program_Open | #PB_Program_Write)
WriteProgramStringN(PID, "DEIN PASSWORT HIER")
Damit ging hier alles problemlos

Mit dem Flag #PB_Program_Read und ReadProgramData/String kannst du sogar noch die Rückgabe von EncFS auslesen, also könntest du somit z.B. eine Fehlerbehandlung noch einbauen. (Bei einem falschem Key oder ähnliches) Viel Spass damit und noch einen schönen Abend!