Seite 1 von 3
Explorerfenster öffnen
Verfasst: 08.03.2013 17:44
von gekkonier
Hi!
Ich würde gerne aus meinem Programm heraus einen Ordner "öffnen"
D.h. wenn ich auf "den" Button klicke soll mir der Explorer das Verzeichnis öffen (unter OSX der Finder).
Geht das einfach mit den Bordmitten von Purebasic?
RunProgram scheint mir da der falsche Befehl dafür zu sein, oder?
Danke, Gekkonier
Re: Explorerfenster öffnen
Verfasst: 08.03.2013 17:59
von gekkonier
Ich habe herausgefunden, dass ich das unter Windows mit
Code: Alles auswählen
RunProgram("explorer.exe", GetCurrentDirectory()+"Output", "")
machen kann.
Wie könnte das unter OSX funktionieren?
Danke, Gekkonier
Re: Explorerfenster öffnen
Verfasst: 08.03.2013 18:02
von Kiffi
Was passiert denn auf dem Apfel, wenn man folgendes aufruft?
Grüße ... Kiffi
Re: Explorerfenster öffnen
Verfasst: 08.03.2013 18:31
von gekkonier
Danke für die Antwort
Wenn ich unter OSX
Code: Alles auswählen
If RunProgram(GetCurrentDirectory())
Debug "ja"
Else
Debug "nein"
EndIf
mache kommt leider nein, ansonst passiert nix.
Ich probier mal weiter rum.
Re: Explorerfenster öffnen
Verfasst: 08.03.2013 18:53
von Christian+
Schon mal so was getestet?
Code: Alles auswählen
RunProgram("open", "-R " + GetCurrentDirectory() + "Output", "")
Re: Explorerfenster öffnen
Verfasst: 08.03.2013 21:35
von gekkonier
Danke für den Tipp mit open!
Folgendes Ergebnis:
Wenn der Pfad kein Leerzeichen enthält, dann funktioniert diese Methode, aber sobald welche drinnen sind macht RunProgram nix.
Auf der Shell:
funktioniert.
In Purebasic:
Code: Alles auswählen
RunProgram("open", "-R /Users/gekkonier/Desktop/Etik\ 4.1/Output/", "")
funktioniert nicht.
Wenn ich den Ordner in Etik umändere, um einen Pfad ohne Leerzeichen zu erhalten funktionierts.
Bug oder Pebkac?
Re: Explorerfenster öffnen
Verfasst: 08.03.2013 21:40
von RSBasic
Füg vor und nach dem Pfad ein Chr(34) hinzu.
Re: Explorerfenster öffnen
Verfasst: 08.03.2013 21:56
von gekkonier
Code: Alles auswählen
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_MacOS
RunProgram("open", "-R " + Chr(34) + GetCurrentDirectory() + "Output" + Chr(34), "")
CompilerCase #PB_OS_Windows
RunProgram("explorer.exe", GetCurrentDirectory() + "Output", "")
CompilerEndSelect
Danke, die Doublequotes waren die (Er)lösung.
Trotzdem finde ich es seltsam, dass
RunProgram("open", "-R /Users/gekkonier/Desktop/Etik\ 4.1/Output/", "") nicht funktioniert. Irgendwie hätte ich das doch erwartet.
Re: Explorerfenster öffnen
Verfasst: 08.03.2013 22:00
von ts-soft
Das kann niemals funktionieren, sobald ein Space auftritt ist der Parameter zuende und es folgt der nächste

Re: Explorerfenster öffnen
Verfasst: 08.03.2013 22:29
von gekkonier
Dann dürfte wohl der Space nach dem Backslash mit folgendem Space hier von der Shell sein (also gequoted) und so in Wirklichkeit nicht an open übergeben werden?
Das ist jetzt prinzipiell das selbe wie
Code: Alles auswählen
RunProgram("open", "-R " + Chr(34) + GetCurrentDirectory() + "Output" + Chr(34), "")
übergibt ja auch nach dem -R einen Space. Hat also nicht den Grund dass alles nach einem Space einen neuen Parameter erzeugt.
Irgendwie ist das nicht ganz rund und unlogisch.