WinAutopilot 説明書 [TFマクロコマンド文法]

WinAutopilot 説明書 》 TFマクロコマンド文法

TFマクロファイルはテキストデータです。(拡張子も.TXT)
なので、ノートパッドや日頃使っているエディタで編集できます。
文字コードは「Shift-JIS」にて記述して下さい。

実行時の文法エラー等は処理ログを確認して下さい。

TFマクロファイルの内部構造

サンプルとして「ハロー! WinAutopilot」のマクロソースとその処理ログを載せておきますのでも参考にして下さい。

第1行目

; <TFMACRO>マクロ名称

必ず上記のフォーマットで記述します。
1行目に「<TFMACRO>」タグが無いとTFマクロファイルとして認識しません。
マクロ名称は省略可能です。省略した場合はファイル名がマクロ名称となります。

第2行目

; <TARGET>ウィンドウタイトル

ホットキーのポップアップメニューがTFマクロのターゲットウィンドウを特定する場合の設定を記述します。
「<TARGET>」タグはウィンドウを特定しない場合は必要ありません。
バッチ処理する場合は必要ありません。
ウィンドウタイトルの最後に「*」を付加すると、TFホットキーがウィンドウを特定するときに、ウィンドウタイトルを部分一致で検索します。

第3行目以降

先頭文字が「;」をコメント行として認識し、それ以外はTFマクロコマンドとして認識します。
TFマクロエディタは、最初の「;」の連続のみをコメントとして扱います。
通常エディタで編集して、その後TFマクロエディタで再編集すると途中のコメントは削除されます。
TFマクロコマンドは決められた文法に従って記述します。

TFマクロコマンド文法

文法の記述で、[xx]は省略可能です。
[aa |bb |cc]は、aa,bb,cc のいずれか1つを選ぶか全て省略可能です。
<aa |bb |cc>は、aa,bb,cc のいずれか1つを選びます。省略は不可です。

プログラム起動マクロ

起動するプログラムを指定します。

LAUNCH:"プログラムパス"[,WAIT |,END]

プログラムパスはフルパスで指定します。
システムにパスの通っている「notepad.exe」のようなプログラムはプログラム名のみで構いません。
「WAIT」を指定するとプログラムが起動しアイドル状態になるのを待ちます。
「END」を指定するとプログラムが起動し終了するのを待ちます。

ウィンドウフォーカスマクロ

指定したウィンドウタイトルを持つウィンドウをフォーカスします。

FOCUS:"ウィンドウタイトル"

ウィンドウのタイトルを指定します。
ウィンドウタイトルの最後に「*」を付加するとウィンドウタイトルを部分一致検索します。

注意:
バッチ処理でこのマクロを利用する場合は注意が必要です。
詳細はこちらを確認して下さい。

ウェイトマクロ

処理を一時停止します。

WAIT:待ち時間(ミリ秒)[,入力待ち回数]

「待ち時間」は0以上の数値で指定します。

「入力待ち回数」は、このマクロを処理したときにフォアグラウンドとなっているウィンドウのプロセスが入力完了待ちになるまで「待ち時間」で設定した時間毎に完了待ちを確認する回数を指定します。
0を指定すると入力完了待ちはしません。ただのウエイトになります。
1以上を指定すると、その回数の間にプロセスが入力完了待ちにならない場合はエラーとなりマクロを中止します。

キー入力マクロ

1キー、もしくはコンビネーションで複数キーを押します。
ショートカットキーの入力で利用します。

KEYIN:キーコード [キーコード]・・・[,REP=繰り返し回数]

コンビネーションで同時に押すキーを指定する場合は空白を1バイト入れて記述します。
最大で255個のキーを指定できますが、TFマクロエディタで認識できるのは8個(ALT含まず)までです。
「キーコード」は、A〜Z の文字と、0〜9まで数字と、バーチャルキーコードが利用できます。
バーチャルキーコードでPCによりTFマクロエディタでは設定できないキーも指定可能です。

「REP=」でこのキー入力設定を繰り返す回数を1以上の数値で指定します。1回の場合は省略できます。
フィールド移動や、コンボの選択で「矢印キー」や「TABキー」等を連続で入力する場合に利用します。

数字(0〜9)と文字(A〜Z)キーの組み合わせだけで指定した場合、処理時点のフォーカスウィンドウのIME状態によっては挙動が異なります。
本来この設定はショートカット用に利用するので、文字や数字のみを利用する場合は、文字列入力マクロを利用して下さい。
メニューがプルダウンしている状態なら、数字(0〜9)と文字(A〜Z)キーの単一のキーでもIME状態による影響は受けません。

文字列入力マクロ

このマクロ処理時点で、フォーカスの当たっている入力エリア(フィールド等)に文字列を送ります。

TYPE:<"文字列"|%PARAM1 |%PARAM2 |%CLIP>

「文字列」は指定した文字列をそのまま入力エリアに送ります。
「%PARAM1」「%PARAM2」は、TFマクロ実行エンジンをコマンドプロンプト等から実行した場合に「/1:」「/2:」で与えたパラメタに置き換えて文字を入力エリアに送ります。
「%CLIP」は、このマクロ処理時点でクリップボードにあるテキスト文字列を入力エリアに送ります。

マウス操作マクロ

マウスの動作を指定します。

MOUSE:X座標値,Y座標値[,LOCAL][,ボタン動作コード]

X座標値,Y座標値は数字で指定します。マイナスも指定できます。
「LOCAL」を指定すると、座標の指定がこのマクロ処理時点でフォーカスの当たっているウィンドウのクライアント座標の左上を(0,0)とした絶対座標になります。
クライアント領域はそのウィンドウのコンテンツエリアです。(メモ帳なら文字入力エリア)
「LOCAL」の指定が無いとモニタ画面の左上を(0,0)とした絶対座標になります。
「ボタン動作コード」は、下記のコードが利用できます。

L左ボタンクリック
R右ボタンクリック
M中央ボタンクリック
LW左ボタンWクリック
RW右ボタンWクリック
MW中央ボタンWクリック
Xウィールをクリック
W-マウスのウィールを手前に1回まわした
W+マウスのウィールを後ろへ1回まわした
DDマウスの現在位置から指定座標にドラッグ&ドロップ

マクロサンプル

「ハロー! WinAutopilot」のマクロソースとその実行結果の処理ログです。

; <TFMACRO>ハロー! WinAutopilot

; WinAutopilotの
; 紹介用ファイルを作成
; デモのため余計な Waitが入っています。
; 実際のマクロでは Wait はほとんど必要
; ありません。

LAUNCH:"notepad",WAIT
FOCUS:"無題 - メモ帳"
KEYIN:MENU SPACE
KEYIN:S
KEYIN:LEFT
MOUSE:0,0
KEYIN:UP
MOUSE:0,40,L
KEYIN:MENU SPACE
KEYIN:S
KEYIN:RIGHT
MOUSE:640,45,L
KEYIN:MENU SPACE
KEYIN:S
KEYIN:DOWN
MOUSE:45,580,L
TYPE:"オートデモを開始します。"
KEYIN:RETURN
TYPE:"行末に<デモ終了>と表示されるまで、キーやマウスに触れない出下さい。"
WAIT:4000,3
KEYIN:CONTROL A
KEYIN:DELETE
KEYIN:MENU O
KEYIN:F
TYPE:"MS ゴシック"
KEYIN:TAB,REP=2
TYPE:"12"
WAIT:1000
KEYIN:RETURN
TYPE:"◆Winおーとぱいろっと について"
WAIT:1000
KEYIN:LEFT,REP=5
WAIT:1500
KEYIN:BACK,REP=8
TYPE:"Autopilot"
WAIT:1000
KEYIN:RIGHT,REP=5
KEYIN:RETURN,REP=2
TYPE:"本システムを利用すると、たった6種類の簡単なマクロを組み合わせて、自在"
KEYIN:RETURN
TYPE:"にWINDOWSを操ることが出来ます。"
KEYIN:RETURN
TYPE:"(このドキュメントもこのマクロにて作成しています)"
KEYIN:RETURN,REP=2
WAIT:2000
TYPE:"作成したマクロは、ホットキー(Alt+Z)で、いつでも実行可能です。"
KEYIN:RETURN,REP=2
WAIT:2000
TYPE:"また、特定のウィンドウにのみ対応するマクロとして登録することも可能で、"
KEYIN:RETURN
TYPE:"例えば、メモ帳用にフォント変更をマクロ作成しておけば、メモ帳ウィンドウ"
KEYIN:RETURN
TYPE:"がアクティブな場合のみ、このマクロがホットキーに現れます。"
KEYIN:RETURN,REP=2
WAIT:2000
TYPE:"これは、あたかもその機能がメモ帳に備わっているような感覚で利用できます。"
KEYIN:RETURN
TYPE:"このデモが終わったら、このメモ帳で Alt+Z を押して試して見て下さい。"
KEYIN:RETURN
TYPE:"「Sample」にある「MSゴシック10ポイント」と「MSP明朝12ポイント」が利用できます。"
KEYIN:RETURN,REP=2
WAIT:2000
TYPE:"マクロ作成も簡単で、専用のマクロエディタ(TfEditor)を利用することも、"
KEYIN:RETURN
TYPE:"直接エディタ(マクロはテキストデータ)で書くことも可能です。"
KEYIN:RETURN,REP=2
WAIT:2000
TYPE:"では、存分に「ワインおーとぱいろっと」でウィンドウズを操って見て下さい。"
KEYIN:RETURN,REP=3
TYPE:----------------------------------------------------------------------
KEYIN:RETURN
TYPE:"E-mail : shirai@as.email.ne.jp"
KEYIN:RETURN
TYPE:"URL : http://jjworkshop.com/"
KEYIN:RETURN
TYPE:"2011.3.27 by HIRO."
WAIT:2000
KEYIN:RETURN,REP=2
TYPE:"おっと、タイプミスを修正しなきゃ"
KEYIN:MENU E R
TYPE:"ワインおーとぱいろっと"
KEYIN:TAB
TYPE:"WinAutopilot"
WAIT:2000
KEYIN:MENU A
KEYIN:ESCAPE
KEYIN:MENU E R
TYPE:"おっと、タイプミスを修正しなきゃ"
KEYIN:TAB
TYPE:"<デモ終了>"
KEYIN:MENU A
KEYIN:ESCAPE

処理ログ

[11/04/10 23:36:45] …略…\HelloWinAutopilot.txt マクロ処理開始
[11/04/10 23:36:45] OS情報 Ver=6 : MinVer=0
[11/04/10 23:36:45] Info : ForeGroundLockTimeOut=0 mm sec
[11/04/10 23:36:45] 0009行目:LAUNCH: >notepad< 完了=起動待ち -OK
[11/04/10 23:36:45] 0010行目:FOCUS : >無題 - メモ帳< [完全一致] Check=1 -OK
[11/04/10 23:36:46] 0011行目:KEYIN : MENU(12) + SPACE(20)
[11/04/10 23:36:46] 0012行目:KEYIN : "S"(53)
[11/04/10 23:36:46] 0013行目:KEYIN : LEFT(25)
[11/04/10 23:36:46] 0014行目:MOUSE : X=0 Y=0 BUTTON=none POS=SCREEN
[11/04/10 23:36:46] 0015行目:KEYIN : UP(26)
[11/04/10 23:36:46] 0016行目:MOUSE : X=0 Y=40 BUTTON=L POS=SCREEN
[11/04/10 23:36:46] 0017行目:KEYIN : MENU(12) + SPACE(20)
[11/04/10 23:36:47] 0018行目:KEYIN : "S"(53)
[11/04/10 23:36:47] 0019行目:KEYIN : RIGHT(27)
[11/04/10 23:36:47] 0020行目:MOUSE : X=640 Y=45 BUTTON=L POS=SCREEN
[11/04/10 23:36:47] 0021行目:KEYIN : MENU(12) + SPACE(20)
[11/04/10 23:36:47] 0022行目:KEYIN : "S"(53)
[11/04/10 23:36:48] 0023行目:KEYIN : DOWN(28)
[11/04/10 23:36:48] 0024行目:MOUSE : X=45 Y=580 BUTTON=L POS=SCREEN
[11/04/10 23:36:48] 0025行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>オートデモを開始します。<
[11/04/10 23:36:48] 0026行目:KEYIN : RETURN(0D)
[11/04/10 23:36:48] 0027行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>行末に<デモ終了>と表示されるまで、キーやマウスに触れない出下さい。<
[11/04/10 23:36:52] 0028行目:WAIT : 4000 mm sec [3 max loop] -OK[wh=005B0C4A]
[11/04/10 23:36:52] 0029行目:KEYIN : CONTROL(11) + "A"(41)
[11/04/10 23:36:52] 0030行目:KEYIN : DELETE(2E)
[11/04/10 23:36:53] 0031行目:KEYIN : MENU(12) + "O"(4F)
[11/04/10 23:36:53] 0032行目:KEYIN : "F"(46)
[11/04/10 23:36:53] 0033行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>MS ゴシック<
[11/04/10 23:36:53] 0034行目:KEYIN : TAB(09) <Repeat=2>
[11/04/10 23:36:53] 0035行目:TYPE : [Fgwh=00770E3A][wh=00790606]>12<
[11/04/10 23:36:54] 0036行目:WAIT : 1000 mm sec
[11/04/10 23:36:55] 0037行目:KEYIN : RETURN(0D)
[11/04/10 23:36:55] 0038行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>◆Winおーとぱいろっと について<
[11/04/10 23:36:56] 0039行目:WAIT : 1000 mm sec
[11/04/10 23:36:57] 0040行目:KEYIN : LEFT(25) <Repeat=5>
[11/04/10 23:36:58] 0041行目:WAIT : 1500 mm sec
[11/04/10 23:37:00] 0042行目:KEYIN : BACK(08) <Repeat=8>
[11/04/10 23:37:00] 0043行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>Autopilot<
[11/04/10 23:37:01] 0044行目:WAIT : 1000 mm sec
[11/04/10 23:37:02] 0045行目:KEYIN : RIGHT(27) <Repeat=5>
[11/04/10 23:37:02] 0046行目:KEYIN : RETURN(0D) <Repeat=2>
[11/04/10 23:37:02] 0047行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>本システムを利用すると、たった6種類の簡単なマクロを組み合わせて、自在<
[11/04/10 23:37:03] 0048行目:KEYIN : RETURN(0D)
[11/04/10 23:37:03] 0049行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>にWINDOWSを操ることが出来ます。<
[11/04/10 23:37:03] 0050行目:KEYIN : RETURN(0D)
[11/04/10 23:37:03] 0051行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>(このドキュメントもこのマクロにて作成しています)<
[11/04/10 23:37:03] 0052行目:KEYIN : RETURN(0D) <Repeat=2>
[11/04/10 23:37:05] 0053行目:WAIT : 2000 mm sec
[11/04/10 23:37:06] 0054行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>作成したマクロは、ホットキー(Alt+Z)で、いつでも実行可能です。<
[11/04/10 23:37:06] 0055行目:KEYIN : RETURN(0D) <Repeat=2>
[11/04/10 23:37:08] 0056行目:WAIT : 2000 mm sec
[11/04/10 23:37:08] 0057行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>また、特定のウィンドウにのみ対応するマクロとして登録することも可能で、<
[11/04/10 23:37:08] 0058行目:KEYIN : RETURN(0D)
[11/04/10 23:37:08] 0059行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>例えば、メモ帳用にフォント変更をマクロ作成しておけば、メモ帳ウィンドウ<
[11/04/10 23:37:09] 0060行目:KEYIN : RETURN(0D)
[11/04/10 23:37:09] 0061行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>がアクティブな場合のみ、このマクロがホットキーに現れます。<
[11/04/10 23:37:09] 0062行目:KEYIN : RETURN(0D) <Repeat=2>
[11/04/10 23:37:11] 0063行目:WAIT : 2000 mm sec
[11/04/10 23:37:11] 0064行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>これは、あたかもその機能がメモ帳に備わっているような感覚で利用できます。<
[11/04/10 23:37:11] 0065行目:KEYIN : RETURN(0D)
[11/04/10 23:37:11] 0066行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>このデモが終わったら、このメモ帳で Alt+Z を押して試して見て下さい。<
[11/04/10 23:37:12] 0067行目:KEYIN : RETURN(0D)
[11/04/10 23:37:12] 0068行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>「Sample」にある「MSゴシック10ポイント」と「MSP明朝12ポイント」が利用できます。<
[11/04/10 23:37:12] 0069行目:KEYIN : RETURN(0D) <Repeat=2>
[11/04/10 23:37:14] 0070行目:WAIT : 2000 mm sec
[11/04/10 23:37:14] 0071行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>マクロ作成も簡単で、専用のマクロエディタ(TfEditor)を利用することも、<
[11/04/10 23:37:14] 0072行目:KEYIN : RETURN(0D)
[11/04/10 23:37:15] 0073行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>直接エディタ(マクロはテキストデータ)で書くことも可能です。<
[11/04/10 23:37:15] 0074行目:KEYIN : RETURN(0D) <Repeat=2>
[11/04/10 23:37:17] 0075行目:WAIT : 2000 mm sec
[11/04/10 23:37:17] 0076行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>では、存分に「ワインおーとぱいろっと」でウィンドウズを操って見て下さい。<
[11/04/10 23:37:18] 0077行目:KEYIN : RETURN(0D) <Repeat=3>
[11/04/10 23:37:18] 0078行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>----------------------------------------------------------------------<
[11/04/10 23:37:18] 0079行目:KEYIN : RETURN(0D)
[11/04/10 23:37:18] 0080行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>E-mail : shirai@as.email.ne.jp<
[11/04/10 23:37:18] 0081行目:KEYIN : RETURN(0D)
[11/04/10 23:37:18] 0082行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>URL : http://jjworkshop.com/<
[11/04/10 23:37:19] 0083行目:KEYIN : RETURN(0D)
[11/04/10 23:37:19] 0084行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>2011.3.27 by HIRO.<
[11/04/10 23:37:21] 0085行目:WAIT : 2000 mm sec
[11/04/10 23:37:21] 0086行目:KEYIN : RETURN(0D) <Repeat=2>
[11/04/10 23:37:21] 0087行目:TYPE : [Fgwh=005B0C4A][wh=005D0914]>おっと、タイプミスを修正しなきゃ<
[11/04/10 23:37:21] 0088行目:KEYIN : MENU(12) + "E"(45) + "R"(52)
[11/04/10 23:37:22] 0089行目:TYPE : [Fgwh=00790E3A][wh=00380E1A]>ワインおーとぱいろっと<
[11/04/10 23:37:22] 0090行目:KEYIN : TAB(09)
[11/04/10 23:37:22] 0091行目:TYPE : [Fgwh=00790E3A][wh=00BE03AE]>WinAutopilot<
[11/04/10 23:37:24] 0092行目:WAIT : 2000 mm sec
[11/04/10 23:37:24] 0093行目:KEYIN : MENU(12) + "A"(41)
[11/04/10 23:37:24] 0094行目:KEYIN : ESCAPE(1B)
[11/04/10 23:37:24] 0095行目:KEYIN : MENU(12) + "E"(45) + "R"(52)
[11/04/10 23:37:25] 0096行目:TYPE : [Fgwh=007B0E3A][wh=004805AE]>おっと、タイプミスを修正しなきゃ<
[11/04/10 23:37:25] 0097行目:KEYIN : TAB(09)
[11/04/10 23:37:25] 0098行目:TYPE : [Fgwh=007B0E3A][wh=00410E5A]><デモ終了><
[11/04/10 23:37:25] 0099行目:KEYIN : MENU(12) + "A"(41)
[11/04/10 23:37:26] 0100行目:KEYIN : ESCAPE(1B)
[11/04/10 23:37:26] マクロ処理終了

解説:
0009行目:メモ帳を起動
0010行目:メモ帳起動後のフォーカスを待ち合わせ
0011行目:システムメニューをプルダウン
0012行目:"S"を送りシステムメニューのサイズ変更を選択(ウィンドウのリサイズ処理)
0013行目:「←」キーを送り、ウィンドウ枠の左端にマウスを移動
0014行目:マウスを 0,0 に送りウィンドウの右上をその位置に移動
0015行目:「↑」キーを送り、ウィンドウ枠の左上端にマウスを移動
0016行目:マウスを 0,40 に送りウィンドウの上を40Pixの位置へ移動
0017行目〜0024行目:これは12〜16と同じくウィンドウ右下のリサイズ処理
0025行目〜0027行目:デモの開始通知の文字列を送出
0028行目:4秒待機
0029行目〜0030行目:デモの開始通知の文字列を削除
0031行目〜0036行目:フォントダイアログからフォントとサイズを指定
0037行目:1秒待機
0038行目〜0087行目:説明の文字列をウェイトを挟みながら送出
0088行目:置換ダイアログを表示
0089行目〜0093行目:置換処理「ワインおーとぱいろっと」→「WinAutopilot」
0094行目:「ESC」キーを送り置換ダイアログを閉じる
0095行目〜0100行目:置換処理「おっと、タイプミスを修正しなきゃ<」→「<デモ終了>」

バーチャルキーコード

バーチャルキーコードはキー入力マクロで指定できるキーコードです。
たとえば「シフトキー」を指定する場合は「SHIFT」となります。
その他もだいたい想像がつくと思います。

LBUTTON
RBUTTON
CANCEL
MBUTTON
BACK
TAB
CLEAR
RETURN
SHIFT
CONTROL
MENU
PAUSE
CAPITAL
KANA
HANGEUL
HANGUL
JUNJA
FINAL
HANJA
KANJI
ESCAPE
CONVERT
NONCONVERT
ACCEPT
MODECHANGE
SPACE
PRIOR
NEXT
END
HOME
LEFT
UP
RIGHT
DOWN
SELECT
PRINT
EXECUTE
SNAPSHOT
INSERT
DELETE
HELP
LWIN
RWIN
APPS
NUMPAD0
NUMPAD1
NUMPAD2
NUMPAD3
NUMPAD4
NUMPAD5
NUMPAD6
NUMPAD7
NUMPAD8
NUMPAD9
MULTIPLY
ADD
SEPARATOR
SUBTRACT
DECIMAL
DIVIDE
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
NUMLOCK
SCROLL
LSHIFT
RSHIFT
LCONTROL
RCONTROL
LMENU
RMENU
OEM_1';' SHIFT+で':'
OEM_2'+'
OEM_3','
OEM_4'-'
OEM_5'.'
OEM_6'/' SHIFT+で'?'
OEM_7'`' SHIFT+で'~'
PROCESSKEY
ATTN
CRSEL
EXSEL
EREOF
PLAY
ZOOM
NONAME
PA1
OEM_CLEAR