2014-10-10 147 views
-1

我试过在Apple.StackExchange.com上询问这个问题,但他们将我重定向回到这里。可以运行shell命令的OS X应用程序

我创建了一个自定义file associationTextEdit并让它工作。我现在需要构建一个应用程序,使用我的自定义file association并运行shell commands以打开非专有应用程序(如TextEdit,VLC等)。这个应用程序将从网上下载。

我该如何做到这一切?它可以在任何语言,但最好Objective-C

+0

您是否检查过'open 'shell命令? https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/open.1.html – deimus 2014-10-10 14:54:19

+0

@deimus是的,这个命令是完美的。我需要构建一个可以运行该命令的应用程序。我找不到让Cocoa应用程序像这样运行shell命令的方法。应用程序需要保持打开状态,直到用户关闭它为止,因为我还将执行其他逻辑。 – 2014-10-10 14:58:35

+0

添加一个答案,检查那里 – deimus 2014-10-10 15:00:34

回答

1

看起来有一种更好的方式来做到这一点

[[NSWorkspace sharedWorkspace] openFile:@"<FULL_PATH_TO_YOUR_ASSOSIATED_FILE>"]; 

documentationopenFile

打开指定的文件中使用默认指定与其类型相关的应用程序 。


那么优雅的方式做同样的事情如下:

检查open命令的您的系统上像whereis open和使用中发现地点为可执行文件的位置在代码替换下面

NSTask *task = [[NSTask alloc] init]; 
[task setLaunchPath:@"<FULL_PATH_TO_OPEN_COMMAND>"]; 
[task setArguments:@[ @"<FULL_PATH_TO_YOUR_ASSOSIATED_FILE>"]]; 
[task launch]; 
+0

该任务是更加优雅的方式应用程序可以轻松地监视它/保持活着,而它还活着 - 只要脚本运行,操作系统想保持运行 – 2014-10-10 15:36:51

+0

我可以使用NSTask运行我的shell脚本,然后我使用NSWorkspace来监视应用程序的运行。谢谢! – 2014-10-10 15:51:11

相关问题