Explorerfenster öffnen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Explorerfenster öffnen

Beitrag 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
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Re: Explorerfenster öffnen

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Explorerfenster öffnen

Beitrag von Kiffi »

Was passiert denn auf dem Apfel, wenn man folgendes aufruft?

Code: Alles auswählen

RunProgram(GetCurrentDirectory()+"Output")
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Re: Explorerfenster öffnen

Beitrag 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.
Christian+
Beiträge: 213
Registriert: 13.07.2008 10:05
Computerausstattung: Windows 8.1 Pro
AMD Phenom II X4 955 @ 3.2 GHz
4GB RAM
NVIDIA GeForce GTX 660

Re: Explorerfenster öffnen

Beitrag von Christian+ »

Schon mal so was getestet?

Code: Alles auswählen

RunProgram("open", "-R " + GetCurrentDirectory() + "Output", "")
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Re: Explorerfenster öffnen

Beitrag 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:

Code: Alles auswählen

open -R /Users/gekkonier/Desktop/Etik\ 4.1/Output/
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?
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Explorerfenster öffnen

Beitrag von RSBasic »

Füg vor und nach dem Pfad ein Chr(34) hinzu.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Re: Explorerfenster öffnen

Beitrag 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.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Explorerfenster öffnen

Beitrag von ts-soft »

Das kann niemals funktionieren, sobald ein Space auftritt ist der Parameter zuende und es folgt der nächste :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Re: Explorerfenster öffnen

Beitrag 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?

Code: Alles auswählen

open -R /Users/gekkonier/Desktop/Etik\ 4.1/Output/
Das ist jetzt prinzipiell das selbe wie

Code: Alles auswählen

open -R "/Users/gekkonier/Desktop/Etik 4.1/Output/"

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.
Zuletzt geändert von gekkonier am 08.03.2013 22:42, insgesamt 1-mal geändert.
Antworten