Я хочу, чтобы моя программа запускала другое настольное приложение.
Пробовал выполнить оболочку (открыть имя приложения), но это не работает.
Есть ли другой способ?
Заранее спасибо.
Я хочу, чтобы моя программа запускала другое настольное приложение.
Пробовал выполнить оболочку (открыть имя приложения), но это не работает.
Есть ли другой способ?
Заранее спасибо.
Другая возможность — использовать стандартный Xojo FolderItem и использовать метод Launch.
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
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, однако «запуск» приложения в 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
В качестве альтернативы используйте инструмент командной строки Apple open
:
/usr/bin/open -a "App Name"
/usr/bin/open -a "/Applications/App Name.app"