0

我有一个不应显示在 Dock 上的 Mono 应用程序,但偶尔会显示一个窗口。我不想为此应用程序显示菜单栏和停靠图标。我将我的应用程序包装在一个应用程序包中,并且我的 info.plist 文件将 LSUIElement 设置为“1”。这似乎并没有从 Dock 中隐藏我的应用程序。

我还尝试在 Process.Start 中使用以下信息调用 osascript: osascript -e 'tell application "System Events" to set visible of process "myapp" to false'

这将返回系统事件错误代码:-10006。到目前为止,我还没有找到这意味着什么。

我还尝试了 Mono 中的所有标准 Hide() 和 Visibility = false 内容。

任何人都找到了解决方法,或者有一个想法我可以查看的方向?在大多数情况下,在 Mono 中工作是简单的 .Net 编码,但这让我很困惑。

4

2 回答 2

1

好吧,经过大量的工作,我想出了一个更好的方法来做到这一点。我正在生成一个针对 OSX 的 Silverlight + 单声道应用程序。我需要从同一个按钮启动两者。

使用 Silverlight OOB 安装过程创建的包中的 bash 脚本命令解决了这个问题,并使用一些 rsync 命令简单地分发了创建的包。

启动服务器位的行(使用 Mono 的 macpack 工具创建): op​​en MyApp.app &

然后正常启动 Silverlight OOB 应用程序的行:./Silverlight $@ &> /dev/null

'$@' 位将所有初始参数传递到 OOB 应用程序中的 Silverlight 可执行文件。意味着您必须使用 Info.plist 以使其启动您自己的启动器,因此您的“Silverlight”可执行文件不会在 Silverlight 更新时被覆盖,但似乎工作得很好。

于 2011-03-09T18:20:25.727 回答
0

这就是你要找的东西: http: //uselessthingies.wordpress.com/2008/05/18/an-app-without-dock-icon-and-menu-bar/

tl;dr:打包您的 .app,并在您的应用程序的 Info.plist 中添加<key>LSUIElement</key><string>1</string>.

于 2011-12-20T18:17:00.710 回答