1

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

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

还有其他方法吗?

先感谢您。

4

3 回答 3

5

另一种可能性是使用标准的 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

于 2013-09-09T13:15:52.250 回答
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(). 确保包含转义引号,尤其是在应用程序名称中有空格的情况下。

于 2013-09-09T12:33:04.467 回答
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"
于 2013-09-08T08:11:03.917 回答