我希望我的程序启动另一个桌面应用程序。
尝试shell执行(打开appname)但它不起作用。
还有其他办法吗?
提前谢谢。
答案 0 :(得分:4)
另一种可能性是使用标准的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
答案 1 :(得分: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()
。请务必包含转义引号,尤其是应用程序名称中包含空格时。
答案 2 :(得分: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
或者,使用Apple的open
命令行工具:
/usr/bin/open -a "App Name"
/usr/bin/open -a "/Applications/App Name.app"