Я хочу, чтобы моя программа запускала другое настольное приложение.Xojo запуск/запуск другого приложения (Mac)
Пробный запуск оболочки (открыть приложение), но это не сработает.
Есть ли другой способ?
Заранее спасибо.
Я хочу, чтобы моя программа запускала другое настольное приложение.Xojo запуск/запуск другого приложения (Mac)
Пробный запуск оболочки (открыть приложение), но это не сработает.
Есть ли другой способ?
Заранее спасибо.
Я не знаком с 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"
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()
. Не забудьте включить экранированные кавычки, особенно если приложение имеет пробелы в своем имени.
Другая возможность - использовать стандартный 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
Я совершенно забыл о FolderItem.Launch! Это, безусловно, лучший способ, и кросс-платформу тоже. – ianmjones
Единственная потенциальная проблема заключается в том, что приложение не находится в стандартном месте, в этом случае вам либо нужно найти, либо уже знать, где находится приложение, либо переключиться на использование команды «открыть» через оболочку. – ianmjones