我希望我的程序启动另一个桌面应用程序。
尝试了 shell 执行(打开 appname),但它不起作用。
还有其他方法吗?
先感谢您。
另一种可能性是使用标准的 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"