2

アプリケーションが起動されるのと同じ順序でアプリケーション ウィンドウが表示されるように、スクリプトから多数の GUI アプリケーションを起動する方法を探しています。これは可能ですか?

4

2 に答える 2

3

たとえば、wmctrlの仕事のようです。

wait_for_window() {
  "$@" &
  local PID=$!
  while test -z "$(wmctrl -pl | awk "\$3 ~ $PID")"; do 
    sleep 1
  done
}

wait_for_window gnome-calculator
wait_for_window gnome-terminal

PID とウィンドウの関係は必ずしも単純ではないため、多少の調整が必要になる場合がありますが、アイデアは理解できます。

于 2012-11-09T15:15:09.247 に答える
2

私が考えることができる唯一のことは、起動スクリプトよりも複雑なことです。たとえば、アプリケーションマネージャであり、イベント(この場合は「アプリケーション開始」イベント)を使用して次のアプリケーションを起動します。

コンソールからアプリケーションを起動するだけで、起動したのと同じ順序でアプリケーションの初期化/起動が完了することを期待している場合は、アプリケーションの読み込みにかかる時間を制御できないため、機能しません。

アプリケーションがアプリケーションマネージャと通信して、ロードが完了したことを通知する方法は、プロセス間通信の多くの利用可能なメカニズムを使用することです。

一方、これらのアプリケーションが自分のものではなく、IPCを実装できない場合は、次のアプリケーションを起動する前に、それらが開始されたかどうかを確認する別の方法を見つける必要があります。再起動時に作成される特定のファイル、またはアプリケーションが起動したかどうかに基づいて検出および決定できるその他の動作を検索します

于 2012-11-09T14:55:08.753 に答える