2014-10-10 111 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