2013-07-22 104 views
0

我是mac開發新手。我有一個問題。我爲Aperture製作了一個框架,用於存儲特定位置的圖像以及其他一些信息,如用戶名,密碼,號碼。圖像和FTP服務器名稱等,然後我的另一個應用程序自動啓動,該應用程序上載圖像在FTP服務器上。我的問題是如何自動啓動上傳應用程序。我想我可以使用腳本文件並將此腳本文件調用到第一個應用程序。請給我建議。如何通過腳本(.sh文件)運行mac應用程序?

+0

您想在**發生**時自動啓動應用程序? – trojanfoe

+0

是的trojanfoe。結束一個應用程序,自動啓動第二個應用程序 –

+3

first_command.sh && second_command.sh在第二次寫入「open -a」Mac應用程序「' – Carlo

回答

0

感謝trojanfoe和Parag Bafna。我的解決方案是...

NSTask *task = [[NSTask alloc] init]; 
    NSBundle *bundle = [NSBundle bundleWithPath:[[NSWorkspace sharedWorkspace] fullPathForApplication:@"Path Finder"]]]; 
    [task setLaunchPath:[bundle executablePath]]; 
    NSArray *arguments = [NSArray arrayWithObjects:@"Argument1", @"Argument2", nil]; 
    [task setArguments:arguments]; 
    [task launch]; 

我解決了我的問題。謝謝大家。

+0

我覺得有點不知所措... – trojanfoe

+0

@ trojanfoe ..爲什麼?如果我是理由然後對不起 –

+0

那麼你基本上使用Parag Bafna的答案(從我原來發表的評論),所以他的答案應該被接受,發佈自己的答案並接受它使用其他人提供的答案是不合理的,否則答案的動機在哪裏?您對upvotes也顯得有點吝嗇...... – trojanfoe

1

可以使用open命令與-a選項

open -a appName 


NSTask *task = [[NSTask alloc] init]; 
[task setLaunchPath:@"/usr/bin/open"]; 
[task setArguments:[NSArray arrayWithObjects:@"-a",@"appName",nil]]; 
[task launch]; 
[task release]; 
+0

謝謝Parag Bafna。什麼是這一行的應用程序的真正路徑[任務setLaunchPath:@「/ usr/bin/open」]? –

+0

在appName中,給出完整路徑或應用程序名稱 –

+0

我給完整路徑,如[任務setArguments:[NSArray arrayWithObjects:@「 - a」,@「/ Applications/Uploader.app」,零]],但不啓動。如何啓動應用程序?請幫助.. –