Xojo启动/运行另一个应用程序(Mac)

时间:2013-09-08 07:37:36

标签: macos xojo

我希望我的程序启动另一个桌面应用程序。

尝试shell执行(打开appname)但它不起作用。

还有其他办法吗?

提前谢谢。

3 个答案:

答案 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"