Win32 から OSX に移植する C++ アプリがあります。ユーザーがファイルを開いたかのように、任意のファイルを起動できるようにしたいと考えています。これは、ShellExecute を使用する Windows では簡単です。Mac で同じことを行うにはどうすればよいですか?
ありがとう!
Win32 から OSX に移植する C++ アプリがあります。ユーザーがファイルを開いたかのように、任意のファイルを起動できるようにしたいと考えています。これは、ShellExecute を使用する Windows では簡単です。Mac で同じことを行うにはどうすればよいですか?
ありがとう!
system();
任意の C++ アプリケーションで呼び出すことができます。OSX では、 openコマンドを使用して、クリックしたかのように起動できます。
オープンのドキュメントから:
open コマンドは、ファイルのアイコンをダブルクリックしたかのように、ファイル (またはディレクトリまたは URL) を開きます。アプリケーション名が指定されていない場合、LaunchServices によって決定された既定のアプリケーションを使用して、指定されたファイルが開かれます。
まとめると、次のようになります。
string command = "open " + filePath;
system(command.c_str());
ココアを使用している場合の別の提案:
[[NSWorkspace sharedWorkspace] openFile:@"pathToFile"];
他にも同様の方法がありNSWorkspace
ます。たとえば、アプリケーションまたは URL を開くには:
[[NSWorkspace sharedWorkspace] launchApplication:@"pathToApplication"];
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"URL"]];
処理を行うことで、標準の C呼び出し[NSWorkspace sharedWorkspace]
よりも少し制御を強化できます。system()
編集: Objective-C++を使用して C++ コードと Objective-C コードを混合し、それによって cocoa メソッドを呼び出すことができることに注意してください。
単純に system(); を使用できます。関数。たとえば、ドックを画面の隅に置きたいとします。
簡単に言えます:
system(defaults write com.apple.dock pinning -string end);
sleep(1f);
system(killall Dock);
それはとても簡単です。私が助けてくれることを願っています:)