当前位置:  开发笔记 > 编程语言 > 正文

OSX相当于ShellExecute?

如何解决《OSX相当于ShellExecute?》经验,为你挑选了2个好方法。

我有一个C++应用程序,我正在从Win32移植到OSX.我希望能够像用户打开它一样启动任意文件.使用ShellExecute在Windows上很容易.我如何在Mac上完成同样的事情?

谢谢!



1> e.James..:

您可以调用system();任何C++应用程序.在OSX上,您可以使用open命令启动操作,就好像它们被单击一样.

从开放文档:

open命令打开一个文件(或目录或URL),就像双击文件的图标一样.如果未指定应用程序名称,则使用LaunchServices确定的默认应用程序打开指定的文件.

总之,它看起来像:

string command = "open " + filePath;
system(command.c_str());



2> Naaff..:

如果你正在使用可可,另一个建议是:

[[NSWorkspace sharedWorkspace] openFile:@"pathToFile"];

还有其他类似的方法NSWorkspace.例如,要打开应用程序或URL:

[[NSWorkspace sharedWorkspace] launchApplication:@"pathToApplication"];
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"URL"]];

通过工作[NSWorkspace sharedWorkspace]可以比标准C system()调用更多的控制.

编辑:请注意,您可以使用Objective-C++将C++代码与Objective-C代码混合,从而调用cocoa方法.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有