2013-09-08 4 views

ответ

0

Я не знаком с Xojo, однако «запуск» приложения на OS X является сложным. Есть много вещей, которые вам нужно учитывать, особенно если они уже запущены.

Я рекомендую вам посмотреть в двух возможных вариантов, либо использовать возможность Xojo для запуска называют машинный код C, чтобы запустить один из трех -[NSWorkspace launchApplication...] методов: https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/classes/NSWorkspace_Class/Reference/Reference.html#//apple_ref/doc/uid/20000391-SW23

В качестве альтернативы, используйте open инструмент командной строки от Apple:

/usr/bin/open -a "App Name" 
/usr/bin/open -a "/Applications/App Name.app" 
1
dim s as new Shell 
s.Execute("open -a ""Finder""") 

' Check error code and do something about it... 
if s.ErrorCode <> 0 then 
    MsgBox("Error code: " + Str(s.ErrorCode) + EndOfLine + "Output: " + s.Result) 
end if 

Изменить «Finder» в зависимости от того, приложение вам нужно, или создать строку и передать в s.Execute(). Не забудьте включить экранированные кавычки, особенно если приложение имеет пробелы в своем имени.

4

Другая возможность - использовать стандартный Xojo FolderItem и использовать метод запуска.

Dim f as folderitem = specialfolder.applications.child("AppName") 
if f <> nil and f.exists then 
    f.launch 
end 

Справочная документация: http://docs.xojo.com/index.php/SpecialFolder http://docs.xojo.com/index.php/FolderItem.Launch

+0

Я совершенно забыл о FolderItem.Launch! Это, безусловно, лучший способ, и кросс-платформу тоже. – ianmjones

+0

Единственная потенциальная проблема заключается в том, что приложение не находится в стандартном месте, в этом случае вам либо нужно найти, либо уже знать, где находится приложение, либо переключиться на использование команды «открыть» через оболочку. – ianmjones

Смежные вопросы