如何在OSX Dock上隐藏Mono应用程序

时间:2010-04-01 23:03:18

标签: macos mono dock headless

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

我还尝试在Process.Start中使用以下信息调用osascript: osascript -e'告诉应用程序“系统事件”将进程“myapp”的可见性设置为false'

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

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

任何人都为此找到了解决方法,或者知道我可以查看的方向?在大多数情况下,在Mono工作是直截了当的.Net编码,但这让我很难过。

2 个答案:

答案 0 :(得分:1)

嗯,经过相当多的工作后,我想出了一个更好的方法。我正在生成一个针对OSX的Silverlight + mono应用程序。我需要从同一个按钮按下启动。

使用Silverlight OOB安装过程创建的bundle中的bash脚本命令解决它,并使用一些rsync命令简单地分发创建的bundle。

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

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

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

答案 1 :(得分: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>