2011-12-05 206 views
2

「open -a」不是我們想要的答案,因爲我想自動調試Mac OS X應用程序。這意味着如果有人可以提供如[程序] [args]格式的命令行,則會更好。所以ltrace機制可以將[程序]作爲調試目標,並以[args]作爲輸入。如何從命令行啓動Mac OS X應用程序?

我嘗試過類似「/ Applications/Microsoft Office 2011/Microsoft PowerPoint.app/Contents/MacOS/Microsoft PowerPoint」/Users/poc.pptx的命令行,只有Microsoft Point進程已啓動,但未打開poc.pptx。

打開pptx文件打開Microsoft Point之後,它是這樣的:/ Applications/Microsoft Office 2011/Microsoft PowerPoint.app/Contents/MacOS/Microsoft PowerPoint -psn_0_307275,沒有參數「poc.pptx」。

我甚至手動使用「gdb/Applications/Microsoft Office 2011/Microsoft PowerPoint.app/Contents/MacOS/Microsoft PowerPoint」和「set args /Users/poc.pptx」,然後是「r」,目標應用程序無法打開某些文件運行。

我對此感到困惑,那麼,有人可以幫助我解決這個問題嗎?

謝謝!

+5

什麼讓你相信文件名作爲參數傳遞給powerpoint可執行文件? – mouviciel

+0

,因爲其他應用程序可以以這種方式啓動。 /Applications/Preview.app/Contents/MacOS/Preview /Users/User/Desktop/t.tiff例如。 我是一個Windows用戶,Microsoft Office for windows也可以從cmd啓動。 –

回答

1

不知道這是否會幫助你(取決於你想如何做你的調試),但你可以使用AppleScript的命令行,像這樣:

%osascript <<<EOD 
tell application "Excel" to open "Users:xxx:Documents:sheet.xls" 
EOD 

當進入這個方式,你的腳本可以包含多行,它不必侷限於單行。

6

open -b com.microsoft.PowerPoint <filename>似乎適用於我從命令行打開演示文稿。

5

轉到文件所在目錄,然後輸入

open -a "Microsoft PowerPoint" <filename.ppt> 

這裏的「Microsoft PowerPoint中」是功率點應用程序的名稱,請檢查電源點的名字,如果它在你的應用程序目錄不同。

這對我的MAC(OSX 10.8)來說工作得很好。

我們也可以給出完整的路徑,而不僅僅是文件名。

open -a "Microsoft PowerPoint" <ppt file path> 

這也工作正常。

+0

確認'打開-a「Microsoft Word」'也適用 –

1

如果PowerPoint未打開作爲命令行參數傳遞的文檔,那麼這反映了PowerPoint如何編碼。除了微軟之外,沒有其他人能做到這一點。

操作系統通常不會使用該技術來告訴應用程序打開文檔。相反,它將Apple事件傳遞給應用程序。 Cocoa默認情況下會接受命令行參數,並將它們與Apple事件類似處理,但顯然PowerPoint會覆蓋該默認行爲。

如果您想調試或跟蹤PowerPoint,我建議您分兩步進行。首先,在調試器或跟蹤程序下無需參數地啓動它。然後,告訴它打開一個文件。您可以使用Finder和/或Dock以正常方式執行此操作,也可以使用open -a ...。這樣的打開文檔的請求不會啓動PowerPoint的第二個實例,它會將事件傳遞到正在運行的PowerPoint,您正在進行調試/跟蹤。所以,結果應該與你想要的相似。

相關問題