スクリプト1(基本編)


◆ PowerProのスクリプトって?

通常1回の動作に割り当てるコマンドは一つです。例えばボタンを押したときやホットキーなどに一つのコマンドを割り当てるのが 普通の使い方です。しかし複数のコマンドを連続して実行すると非常に便利なときがあります。そこで使われるのがスクリプトです。

例えばバー上のあるボタンを押すとメモ帳が起動するとします。しかし自分はメモ帳を起動した後 メモ帳を透明化したいと思いました。さらに加えてメモ帳のウィンドウの位置を毎回ランダムに違う位置で表示したい、などと思いました (普通そんな風に考えないと思いますがここは例としてそう考えることにします。またWin 2000/XP以外のOSでは透明化できないので それらのOSを使っている人は、今回は例として読むだけで実際スクリプトを実行するときは透明化処理の部分を抜かしてください)。

通常ならボタンを押すと単にメモ帳が起動するだけで終わります。その後透明化したいのですからメモ帳をターゲットとして何らかの方法で*Window Trans 〜コマンドを実行します。さらにその後メモ帳のウィンドウをドラッグして適当なところに移動させると思います(この場合ランダムとは ちょっと違うかもしれませんが)。

この方法でも確かにいいのですが毎回同じことをやるとなると面倒ですね。そこでスクリプトを使ってこれらの作業を一括して行ってしまうのです。 実際にスクリプトを書くと次のようになります。

"C:\Windows\notepad.exe"
*Window Trans 80 =notepad
x = random 1024
y = random 768
*Window Position &(x) &(y) = = =notepad

注:画面の解像度を1024x768としてスクリプトを組んでいます。また本来*Waitコマンドを入れるべきですがわかりやすくするため省略しています。Win2000/XP以外のユーザは実行するとき2行目を削除してください。

PowerProのスクリプトはこのような感じです。ここではスクリプトがどんな感じかを少し知ってもらえばいいのでよくわからなくてもいいです。 詳しくは追って説明していきたいと思います。 おそらく初期設定ではこのスクリプトを実行してもうまくいかないと思うので実行するのは待ってください。

このスクリプトを実行すればやりたかった「メモ帳を起動した後透明化しランダムに位置を変える」ということが一括で行うことができます。わかる人もいると思いますがこのスクリプトの中には変数が使われています。 PowerProではこのように変数も使えます。(変数って何?と思った人は今は気にしなくてもいいです。) また今回使われていませんがIf文などを使った条件判断や繰り返しなども行うことができます。

このようなスクリプトについてこれから解説していきたいと思います。


◆ スクリプトでできること

PowerProのスクリプトの中ではファイルコマンドはもちろんBuilt-in コマンドをそのまま使うことができ、かつ連続して実行することができます。 また条件判断や繰り返し、PowerProが用意しているキーワードを使えばメモリ残量率(%)やマウスの位置などを知ることができます。 これらを組み合わせればありとあらゆることが実行できるはずです。つまりできることはほぼ無限大です。

例えばメモリ残量率がある一定値以下になったら〜を実行すること、や今アクティブなウィンドウによって実行内容を変える、などもPowerProなら 実現可能です。

さらに加えてPowerProでは様々なダイアログを使うことができます。例えばYesNoボタンのあるダイアログやエディットボックスなどを備えたダイアログなどです。 例えば下図のようなダイアログを作ることができます。



これらのダイアログを使えば汎用性のあるスクリプトを作ることができます。例えばウィンドウを透明化するときはじめに透明度を選択できるようにする場合などに使います。


◆ スクリプトを書く場所

ところで先に出したスクリプトはどこに書けばいいのでしょうか。スクリプトを書く場所は主に2パターンあります。それは コマンドリストとテキストファイルの2つです。


コマンドリストにスクリプトを書くというのはコマンドリストの1アイテムに一つずつコマンドや式を順に書くことです。最初にあげた例のスクリプトでは 次のようになります。



注意してもらいたいのは、コマンドや式はそれぞれのアイテムのLeftのマウスタブ(左クリックに対する動作)に書くということです。 アイテム名は上図では全て(none)となっていますがこれは使われないので適当でいいです。このコマンドリストを スクリプトとして実行すればいいのです(詳細は後述)。


もう一つのやり方としてテキストファイルにそのままスクリプトを書く方法です。この場合なんでもいいのですがテキストエディタを使って スクリプトを書いてテキストファイルとして保存しそれを実行する形になります。

例えばメモ帳を使って書くと次のようになります。



これに好きな名前を付けてテキストファイル(.txt)として保存します。そのまんまですね。

ちなみにこのサイトでは後半で述べたテキストファイルにスクリプトを書いてそれを実行するという形をとっていきます。 なぜならコマンドリストにスクリプトを書くというのはちょっと面倒でありわかりにくいからです。


◆ スクリプトの実行

それでは作ったスクリプトをどうやって実行するのでしょうか。これは先に述べたコマンドリストでスクリプトを書いた場合と テキストファイルにスクリプトを書いた場合とで少し違ってきます。

◇コマンドリストの場合

コマンドリストにスクリプトを書いた場合そのスクリプト(コマンドリスト)を実行するコマンドは*Script Run コマンドです。 構文としては

 *Script Run [コマンドリスト名...]

となります。例えば先にあげた例の場合スクリプトとして書いたコマンドリストの名前は「Script」です。 これをスクリプトとして実行するときは *Script Run Script のようになります。

◇テキストファイルの場合

次にテキストファイルの場合です。スクリプトを書いたテキストファイルを実行するときは *Script RunFile コマンドを使います。 構文は

 *Script RunFile [テキストファイルへのパス...]

となります。例えば先ほどメモ帳に書いたスクリプトをCドライブのルートディレクトリに「SampleScript.txt」というファイル名で保存しました。 このスクリプトを実行するときは「*Script RunFile "C:\SampleScript.txt"」のようになります。


これらのコマンドをバー上のボタンやホットキーに割り当てればいいのです。


◆ スクリプトの書き方

PowerProのスクリプトはほとんどファイルコマンドまたはBuilt-in コマンドを単に羅列したものと考えてください。 つまりは実行したいコマンドを順に並べるだけでスクリプトが出来上がります。それだけです。ただしそれらに変数を使った式などが加わってくる場合があります。

またテキストエディタにスクリプトを書くときは1行に一つのコマンド(または式)を書いてください。一つだけです。 1行に複数のコマンドを書くことはできません。なぜならPowerProのスクリプトでは改行がコマンド同士の切れ目を意味しているからです。

あと知っておいてほしいのですがコメントは「;」(セミコロン)を使います。ただしこれは行の先頭にセミコロンが来たときのみ コメントとして認識されます。例えば

;メモ帳を起動
notepad

はいいのですが

notepad    ;メモ帳を起動

の「メモ帳を起動」はコメントとして認識されません。


◆ コマンドの書き方

PowerProのスクリプトはほとんどコマンドで構成されることになります。PowerProのコマンドは大きく分けて2種類あります。 ファイルコマンドとBuilt-in コマンドです。

◇ ファイルコマンド

ファイルコマンドとはランチャと同じ機能で、ファイルを実行またはそのファイルに関連付けれれたプログラムで実行するコマンドです。 これは単にそのファイルへのパスを書くだけでコマンドになります。例えばWinampの実行ファイルへのパスが
「C:\Program Files\Winamp\winamp.exe」ならコマンドは

"C:\Program Files\Winamp\winamp.exe"

となります。何気なく書いてあるダブルクォーテーション(”)は意外に重要です。特にこの例の「Program Files」のようにパスに空白を 含む場合、ダブルクォーテーションで囲わないとファイルが見つかりません、みたいな事を言われます。空白がなければ「”」で囲わなくても うまくいきます。

◇ Built-in コマンド

Built-in コマンドとはPowerProが用意しているアスタリスク(*)で始まるコマンドのことです。例えば*Clip〜や*Menu〜などがあります。 スクリプトを書くときに問題になるのは各コマンドの構文です。すなわちコマンドのパラメータなどの形を知っておかなければなりません。

例えば最初にあげたスクリプトに*Window Transコマンドがありました。これは指定したウィンドウを透明化するコマンドです(Win2000/XPのみ)。 このコマンドの構文は次のようになります。

 *Window Trans [透明度(-255〜255)...] [ターゲット...]

最初に挙げたスクリプト例のようにメモ帳のウィンドウを透明度80として透明化したいときは「*Window Trans 80 =notepad」 となるわけです。これを「*Window Trans =notepad 80」などとしてターゲットと透明度を逆にしてもエラーになるだけです。

このようにコマンドにはそれぞれ特定の記述方法があります。本来まとめるべきなのですがまだまとめていません。今はコマンドリストなどの アイテム編集ダイアログのコマンド入力フィールドで表示される説明をよく読んで指定してみてください。



とりあえず以上の知識があれば簡単なスクリプトを書くことができると思います。また変数を使うと非常に便利なことがあります。 次は変数について解説します。


トップに戻る  スクリプト2(変数)へ