スクリプト3 (ターゲットの記述)


ここではウィンドウなどのターゲットの指定方法を説明します。

例として*Window Closeコマンドを挙げます。*Window Closeコマンドはウィンドウ(プログラム)を閉じるコマンドです。通常パソコンを使っているときはたくさんのプログラムが動いているはずですね。 単に「*Window Close」を実行するとPowerProはたくさんのプログラムのうちどれを閉じるべきかわかりません。 そこで私たちは閉じたいプログラムを指定するわけです。 ターゲットの指定方法は何通りかありこれから順に解説していきます(これらのターゲットの記述方法をキャプションリストと呼ぶそうです)。


◆ キャプションで指定

キャプションとはウィンドウのタイトルバーの文字のことです。例えば下図のようなメモ帳の場合



タイトルバーに表示されているのは「無題 - メモ帳」なのでこれがキャプションです。タイトルバーがないウィンドウも見えないですがキャプションを持っています。 キャプションがわかっていればウィンドウを区別できターゲットを絞ることができますね。

で、キャプションでターゲットとして指定するときは、そのキャプションをそのまま書けばいいです。 例えばさっきのメモ帳を閉じたいと思ったら

*Window Close "無題 - メモ帳"

とします。ダブルクォーテーションで囲っていますがなくてもうまくいく場合があります。同じキャプションを持ったウィンドウが複数あれば それら全てがターゲットとなります。

またワイルドカード(*)も使えます。これはキャプションが常に一定でないときに使います。例えばWinampというアプリケーション(プレイヤー)は キャプションに再生中の曲名を表示します(設定によっては違うかもしれません)。曲が変わればキャプションも変わってしまいます。仮にWinampのキャプションの構成が 「再生中の曲名 - Winamp」のようになっているとするとターゲットとしては次のようにします。

*Window Close "*Winamp"

「Winamp」の部分は変化しないのでそれを利用しています。この例の場合では「Winamp」より左の部分には何が来てもいいことになります。 同じようにキャプションの右側が変化する場合は「xxx*」(xxxという部分が共通部分のとき)、xxxを途中に含むときは「*xxx*」とします。 ワイルドカードを使わなければ完全にマッチしなければなりません。


◆ 実行ファイル名で指定

プログラムの実行ファイル名でもターゲットとして指定できます。例えばメモ帳の実行ファイル名は「notepad.exe」です。 メモ帳のウィンドウを閉じたいと思ったら

*Window Close "=notepad"

とします。このように閉じたいプログラムの実行ファイル名の前に「=」を書きます。実行ファイルへのパス、拡張子(.exe)は必要ありません。


◆ クラス、ハンドルで指定

ウィンドウクラス、ハンドルでも指定できます。と言っても私はあまり詳しくないので説明できません。わかる人にはわかると思います。

クラスの場合はクラス名の前に「c=」を付けます。例えばWinamp 2.xのメイン(?)のウィンドウクラスは「Winamp v1.x」です(なぜかv1.xなんですね)。 クラスは*Exec WindowInfoコマンドなどで調べることができます。この場合

*Window Close "c=Winamp v1.x"

と指定します。ワイルドカードも使えます。


ウィンドウハンドルはWindowsによって個々のウィンドウに割り当てられるユニークな数字です。ハンドルは window("firstwindow", caption_lists)などで 調べられます。このあたりの話はかなり複雑なのでヘルプの「Window Handles」を見てください。

仮に今起動しているメモ帳のウィンドウハンドルが「7012812」だとすると

*Window Close "7012812"

とします。


これらのターゲットの指定の仕方は同じ実行ファイルや同じキャプションを持つウィンドウの中で特に一つ指定して処理したいときに使われます。


◆ キーワードで指定

キーワードとは現在アクティブなウィンドウやマウスの下にあるウィンドウなどをターゲットにするときに使われる特別な文字列です。 以下のものがあります。

キーワードターゲット
active現在アクティブなウィンドウ
autorunOpenスペシャルリストで最後に実行されたプログラム
activebarActive Buttonsで最後にアクティブにしたプログラム
underマウスポインタの下にあるウィンドウ
under parentマウスポインタの下にあるウィンドウの親ウィンドウ
all最小化されたウィンドウも含める全てのウィンドウ


例えば今アクティブなウィンドウと閉じたいと思ったら

*Window Close active

とします。

今までのものとは少し違いますがメニューを表示させてターゲットを選択することもできます。メニューを表示するときは次のキーワードを使います。

キーワードメニュー内容
menu表示されているウィンドウのメニュー
menu hidden表示されていないプログラムも含めるメニュー
menu trayminタスクトレイに最小化されたウィンドウも含めて表示されているウィンドウのメニュー



以上が主なターゲットの記述方法です。


◆ 複数指定する場合

ターゲットを指定するとき複数指定することができます。複数指定するときは「,(カンマ)」で区切ってください。例えば Winampとメモ帳を同時に閉じたいと思ったら

*Window Close "*Winamp*, =notepad"

とします。


スクリプト2へ  トップへ