0

ドックには表示されないはずの 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 + mono アプリケーションを生成しています。同じボタンを押すだけで両方を起動する必要がありました。

Silverlight OOB インストール プロセスが作成するバンドル内から bash スクリプト コマンドを使用して解決し、いくつかの rsync コマンドを使用して、作成したバンドルを単純に配布しました。

サーバー ビットを起動する行 (Mono の macpack ツールを使用して作成): open 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 に答える