これが状況です:
Unityクイックリストエディター(の次のバージョン)に取り組んで、ランチャーアイコンを「再起動」する信頼できる方法を追加したいと思います。そのためには、アイコンを削除し(gsettingsを編集)、同じ位置でそれを置き換える必要があります。これまでのところ問題ありません。ただし、問題のアプリケーションが実行されている場合、アイコンがランチャーから削除されるとアプリケーションが終了するため、ユーザーはデータを失う可能性があります。私は必要なのは、アプリケーションが実行されている場合は、実行中のプロセスをリストで編集チェックをしましょう、とアイコンが再起動できないことをユーザーに警告メッセージを送信するために、アプリケーションのプロセス名を見つけるための信頼性の高い方法である場合、アプリケーションがありますランニング。
これまでに行ったことは、エディターがデスクトップファイルを調べてコマンドを読み取り、ディレクトリセクションからストリップされたコマンドを読み取り、さらにデスクトップファイルコマンドが参照する可能性のあるリモートスクリプトを調べて、開始文字列を探すことです「./」で
この方法は、私がテストしたすべてのアプリケーションでうまく機能するように見えますが、「オールインワン」の方法で問題をカバーする簡単な方法があるはずだと感じています...
ある?
また、より例外的な状況をキャッチする提案も歓迎します!
ps
とxprop
出力と同じプロセス名を知るだけですか?
.desktop
ファイルから「計算された」プロセス名。これは必ずしもWM_CLASSではありません。WM_CLASSは、アプリケーション内から設定できます。
firefox.desktop
と、PID 1234でfirefoxを起動しますが 、WM_CLASS
「Firefoxではありません」のようなものに変更されました。.desktop
ただし、ファイルは変更されません。に関係なく、PID 1234に添付された名前を取得しWM_CLASS
ます。私は何をする必要があるかを正確に理解していると思います。しかし、あなたは私の最初の質問に答えませんでした-それがUnityだけのものなら大丈夫ですか?