OSX-Äquivalent von ShellExecute?

8

Ich habe eine C ++ App, die ich von Win32 nach OSX portiere. Ich möchte in der Lage sein, beliebige Dateien zu starten, als ob der Benutzer sie geöffnet hätte. Dies ist für Windows mit ShellExecute einfach. Wie erreiche ich dasselbe auf dem Mac?

Danke!

    
twk 13.05.2009, 18:15
quelle

3 Antworten

14

Sie können system(); in einer beliebigen C ++ - Anwendung aufrufen. Unter OS X können Sie den Befehl open verwenden, um die Dinge so zu starten, als ob Sie wurden angeklickt.

Aus der Dokumentation zu open:

  

Der Befehl open öffnet eine Datei (oder ein Verzeichnis oder eine URL), so als ob Sie auf das Symbol der Datei doppelgeklickt hätten. Wenn kein Anwendungsname angegeben ist, wird die mit LaunchServices festgelegte Standardanwendung zum Öffnen der angegebenen Dateien verwendet.

Alles in allem würde es so aussehen:

%Vor%     
e.James 13.05.2009, 18:18
quelle
9

Ein weiterer Vorschlag, wenn Sie mit Kakao arbeiten:

%Vor%

Es gibt noch andere ähnliche Methoden in NSWorkspace . Um beispielsweise eine Anwendung oder eine URL zu öffnen:

%Vor%

Wenn Sie [NSWorkspace sharedWorkspace] durcharbeiten, können Sie etwas mehr Kontrolle haben als der standardmäßige C system() -Aufruf.

Bearbeiten: Beachten Sie, dass Sie Objective-C ++ mischen, um C ++ - Code mit Objective-C-Code zu mischen und dabei Kakaomethoden aufzurufen.

    
Naaff 13.05.2009 18:32
quelle
0

Sie können das System einfach verwenden (); Funktion. Angenommen, Sie möchten Ihr Dock in die Ecke des Bildschirms stellen.

Sie können einfach sagen:

%Vor%

Es ist so einfach. Hoffe ich half:)

    
Asphyxia 18.06.2014 18:27
quelle

Tags und Links