サンプル集1

通常版用 サンプル集

テキストエリア内の文字列を、マウスレコーダーに直接貼り付けるだけで使用できます。

手順
1.マウスレコーダー起動しておきます。(新規作成状態)
2.下のテキストエリア(色の付いている)部分をクリック(またはダブルクリック)
       → 全ての文字が選択される → 選択された文字をコピー
3.マウスレコーダーに貼り付ける。
以上



一覧

条件分岐(If〜Else〜End-If)
条件分岐(Else-If連続)
繰返し処理(Do 〜 Loop-While 前置判定/後置判定)
繰返し処理(Do While 〜 WLoop ポイント位置の色取得ツール)
  繰返し処理(For 〜 Next−For)
    同、CSVファイルからデータ入力
  繰返し処理(ランダム文字列生成)
Jump命令
Wait命令
自動応答
モジュール化(サブルーチンコール)
モジュール化(条件付サブルーチンコール)
  メッセージボックスの表示と応答判別法
   
リストボックス(LIST_BOX)とインプットボックス(INPUT_BOX)の使用例
リストボックスの使用例2−CPU使用率連続表示
関数リストボックス−個別プロセスのCPU使用率
 
  タブキーによるフォーカス位置移動
SetCheck:チェックボックスの値を設定
   
YAHOOへの自動再ログイン
別のYAHOO IDへログイン
ダミーログイン例
データ入力&送信&確認応答の例
IEタブ操作の実演例
ページ内情報を判定してページを識別
Webページの各種情報を取得
Webページの最終更新日時を取得
Webページ内の個別データをId指定で取得
ファイルのダウンロード
   
レジスタとインプットボックス応答の演算
   
CPU使用率の連続表示
GetPoint:マウスポインタ位置の文字列取得
      変数とループを使った画面スキャン
CheckData:正規表現を利用したデータチェック
GetPixel/GetPixelPoint:指定座標位置の色を取得
ポイント位置近辺の画像変化を監視
画像変化を検知時に音を出す
画像変化が即発生するような場合の検知
ファイルにデータ出力
   
例1 バージョンと日付の取り出し
   
文字列操作関数
関数内計算(うるう年を関数と計算式を用いて1行で判定)
数学関数演算(マウスの螺旋移動)
システム情報取得関数
ファイルのツリー表示
バッチファイルの自動生成と実行
VBScriptを利用したエクセルへのデータ書き込み(返却値なし)
VBScriptを利用したファイルリスト表示(返却値あり)
DOSコマンドを利用したファイルリスト表示(返却値あり)
VBScriptを関数として使用(うるう年判定)
   
アプリ状態により待機
キャプチャー
PC電源管理 スタンバイ(復帰付き)
アプリの消滅を待ってスタンバイ
シャットダウンツール2(CPU使用率計測により処理分岐)
MsAgent を利用したアニメーション




MsgBox

メッセージボックスの表示と応答判別法

メッセージを表示します
また、応答ボタンの種類を変えることで、ユーザーの選択に応じて次の処理を変えることが出来ます。

下記の例は、
 ・はい、いいえ、キャンセル
 ・再試行、キャンセル
 ・OK のみ
の各種ボタンの表示方法と、その応答判別方法の例です。
001 !                                                          
002 ! MSGBOX ボタンテスト                                
003 !                                                          
004                                                            
005 はい_いいえ_キャンセル  // 3つのボタン                    
006                                                            
007       MSG_BOX          // メッセージ表示          3 ボタンを押してください!   
008       Jump             // はい?                %MSGBOX%=6 はい   
009       Jump             // いいえ?              %MSGBOX%=7 いいえ   
010       Jump             // キャンセル?          %MSGBOX%=2 キャンセル   
011 !                                                          
012 はい  MSG_BOX                                      「はい」が押されました!   
013       Jump                                         再試行_キャンセル   
014 いいえ MSG_BOX                                     「いいえ」が押されました!   
015       Jump                                         再試行_キャンセル   
016 キャンセル MSG_BOX                                 「キャンセル」が押されました!   
017       Jump                                         再試行_キャンセル   
018 ! --------                                                 
019 再試行_キャンセル      // 2つのボタン                     
020       MSG_BOX          // メッセージ表示          5 ボタンを押してください!   
021       Jump             // 再試行?              %MSGBOX%=1 はい_いいえ_キャンセル   
022       Jump             // キャンセル?          %MSGBOX%=2 終了   
023 !                                                          
024 再試行 MSG_BOX                                     「再試行」が押されました!   
025       Jump                                         はい_いいえ_キャンセル   
026 キャンセル_2 MSG_BOX                               「キャンセル」が押されました!   
027       Jump                                         終了    
028 !                                                          
029 終了  MSG_BOX                                      終了です。   
    


プログラムコード

コードの使用方法>

リストボックス

リストボックス(LIST_BOX)とインプットボックス(INPUT_BOX)の使用例

 30秒後既定値を自動応答(リストボックス/インプットボックス共に空白が既定値となっている)


コードの使用方法


リストボックスの使用例2 − CPU使用率連続表示
 リストボックスで指定された監視間隔(秒)でCPU使用率を画面左上に連続表示する


コードの使用方法

関数リストボックスの使用例 − 個別プロセスのCPU使用率
リストボックスで指定されたプロセスを2秒平均のCPU使用率を
画面左上に連続表示する






 使用する関数
   ListBox     :リストボックスを表示する
   GetCpuUtilization:CPU使用率を取得する
   Timer      :秒タイマー
   GetSplit     :文字列を指定文字で区切った部分を切り出す
   Format      :文字列を指定書式に整形

コードの使用方法


演算

レジスタとインプットボックス応答の演算

下記の例は
  %REG1%に2をセット、(インプットボックスで入力された値+1)を2倍し、%REG1%の値と3を加算
の結果をメッセージボックスに表示します。
コードの使用方法


CPU使用率の連続表示

CPU使用率を5秒周期で連続表示します。



パラメータにプロセス名(部分指定可)を指定することにより、特定アプリのCPU使用率を表示することも可
(・・ただし、指定プロセスが無い場合や、複数個存在する場合のエラーチェックを組み込むことが必要となります。)
コードの使用方法



GetPoint

マウスポインタ位置の文字列取得

下記の例は
  同梱の「あっちむいてホイ」を起動し、マウスポインタ位置(x = 230 , y = 315)のデータ
をメッセージボックスに表示します。
上記座標にあるボタンの文字「Start」(表示だけで実行はされない)が表示される。
コードの使用方法



変数とループを使った画面スキャン

下記の例は
  画面上のポイント位置を変化させ、ポイントしているところの文字列をフォームに表示します。
  変数 X Y を定義します。(本記述では % を省略)
  位置の変化を、X座標に X 、Y座標に Yを使用し、それぞれ AddVariableにより変化させます。
  Do〜Loop-Whileの繰り返しを使ってX座標の変化とY座標の変化の2段階ループ
  下地が無いと寂しいので、当ヘルプ画面と「電卓」を起動。
  ポイント位置のデータは、X,Y座標を指定してGetPointで読み取り、%GetPoint%に格納されます。
  表示は、SHOW_MSG内に%GetPoint%を記述しておくことで、自動的に表示(Waitで0.3秒待ち)
  最後に AP_QUITにより、起動した2つのアプリを終了
少々、プログラミング的です。


補足
  表示に於いては、下記のように記述している。

  赤: Format(GetRValue(%Color%),"@@@") (Hex(GetRValue(%Color%)))

  式の意味:  %Color% に色コードが格納されている
    GetRValue:色コードから赤色(R:Red)成分を取り出す
    Format:   書式を指定、"@@@"は右詰3桁、先頭空白詰め。ちなみに、左詰は"!@@"
                     空白ではなく、ゼロ(0)詰めの場合は"000"と記述
    Hex:     16進表記に変換
コードの使用方法




GetPixel/GetPixelPoint:指定座標位置の色を取得

下記の例は
  画面上のポイント位置を変化させ、ポイントしているところの色をフォームに表示します。
  位置の変化はX座標に REG1 、Y座標に REG2 を使用し、それぞれ AddRegにより変化させます。
  ループはX座標の変化とY座標の変化の2段階ループ

  ポイント位置は、REG1REG2X,Y座標を指定してマウスを移動し、GetPixelPointで読み取ります。
  表示は、SHOW_MSG内に、10進数と16進数の形式(Hex関数)で表示。
  合わせて、各色成分(赤緑青)の値を10進数と16進数で表示。GetRValue,GetGValue,GetBValue

  (ピルセル)の色を取得するため、
  白い文字の線上にポインタが来るとFFFFFF(白)、黒い文字の線上に来ると(黒)になることに注目。

結構、プログラミング的です。

注意:本例でのWebページ上の表記数字は、画面の色深度32ビットの場合です。
    色深度が16ビットの場合、表記の値と異なります。



補足:16進数表記順
      B(青)G(緑)R(赤)の順となり、画面表記とは逆になっています。

    SHowMsg、MsgBox内で関数記述
      関数の前後に通常文字が接していると文字列と見なしてしまいます。
      通常文字列と関数の間には半角空白を入れて下さい。
コードの使用方法



WaitImgChange ポイント位置近辺の画像変化を監視

下記の例は、ポイント位置近辺の画像変化を監視して、変化を検知したらメッセージボックスを表示します。
監視範囲は、指定位置(自動的にマウスポインタも移動)の上下左右8ピクセルの範囲内
                               → 右図

編集フォームで「WaitImgChange」を選択すると、マウスを囲むようにピンク枠が表示されるので、その範囲内を目安に座標を指定すればよい。


動作概要
・実行すると、ダミーのアプリ「あっち向いてホイ」が起動される。
 この時、信号は
・8秒後に、信号がになると、それを検知してメッセージボックスが表示される。
 (最長30秒待つ。待ち時間を8秒以内にするとタイムアウト処理を確認できる。)



コードの使用方法

画像変化が即座に発生する可能性がある場合の検知
メモ帳に文字を入力して、その文字入力で画像が変化したかを検知する。
この場合、WaitImgChangeだけでは検知不可なので、WaitImgChangeInitを発行して、文字入力する前の比較ベース画像を取得しておく


タブキーによるフォーカス位置移動

プログラムコード

使用するサンプルアプリ



上記アプリでは、起動時のフォーカス(入力を受け付ける位置)は、
"チェックボックス"フレームの中の"うちの猫"ボタンになっています。

ここから、"オプションボタン"フレーム内の"となりの晩御飯"へは
タブキーを4回、下矢印(↓)キーを2回
押すと、フォーカスが移動します。下図 016 , 017 行目



コードの使用方法>

SetCheck チェックボックスの値を設定

チェックボックスオプションボタンの値を固定の値に設定する。
また、値の取得も行う(メッセージボックスに表示)



動作説明

・テスト用プログラムを起動<

・値の設定

チェックボックス
  うちの猫   → 座標指定で強制チェック
  うちのカミさん → ウィンドウタイトルと表示文字で強制消去

オプションボタン
  内野聖陽   → ウィンドウタイトル表示文字で強制反転

・値の判定と設定

オプションボタン
  となりのトトロ → ウィンドウタイトル表示文字で強制チェック
  ・チェックボックス
    チェックされているかな? → ウィンドウタイトル表示文字
                チェック状態をメッセージフォームに表示

・ボタンクリック

コマンドボタン
  表示文字によるコントロール検索
  ウィンドウ内の「閉じる」の表示文字列を探してクリック

・テストプログラムを閉じる(5秒後)

プログラムコード

コードの使用方法
<・ぢv>

CheckData

正規表現を利用したデータチェック

正規表現を利用してデータをチェックおよび必要箇所を抜き出します。

下記の例では、下図のようなYahooのトップページから「トピックス」の項目を抜き出します。
001     Set     //保存ファイルパス FilePath     %Desktop%\yahoo.txt
002     Set     //URL              Url          http://yahoo.co.jp
003     Set     //正規表現         Reg   (トピックス(?:.|\n)*?[0-9]+時[0-9]+分更新(?:.|\n)*?の話題)
004 !            
005     FileInit        //ファイル初期化        %FilePath%
006     IEGetDoc        //ドキュメント取得      %Url%
007     CheckData       //正規表現で文字列取得  %GotData%  %Reg%
008     MSG_BOX         //取得文字列表示
009     FileWrite       //ファイルへ書込み      %MatchData% %FilePath%
006 Yahooのトップページのテキストドキュメントを取得。
    データは %GotData% に格納される。
007 %GotData% に格納されているデータをチェック

   正規表現
    ([0-9]+時[0-9]+分更新(?:.|\n)*?の話題)  の意味
    「"xx時xx分更新"の形式の文字で始まり、
    、改行を含む任意の文字列、"の話題(xx件)"の文字で終わる文のカッコ内の文字
」を意味する
     [0-9]: 0 から 9 までの任意の数字1文字
       .: 改行以外の任意の1文字
      \n : 改行
     .|\n : 改行以外の任意の文字、または改行 → 改行を含む任意の1文字
         (|:「または」を意味する)
       * : 正規表現の0回以上の繰り返し
      + : 正規表現の1回以上の繰り返し
     ( ) : グループ化(カッコ内が対象文字列としてキャッチアップされる)
     (?:) : キャッチアップしないグループ

   マッチした文字列は %MatchData% に格納される。

003 メッセージボックスにマッチした文字列を表示


正規表現の記号の意味と記述例は右リンクを参照 → 正規表現の記述例




Yahooトップページ


実行結果は下図

コードの使用方法

FileInit,FileWrite

ファイルにデータを出力

正規表現を利用してデータをチェックおよび必要箇所を抜き出します。

下記の例では、右図のようなYahooのトップページから「トピックス」の項目を抜き出します。
ファイルはデスクトップに「yahoo.txt」のテキストファイルとして作成される。
001 FileInit    %DeskTop%\yahoo.txt
002 IEGetDoc    http://yahoo.co.jp
003 CheckData   %GotData%       (トピックス(?:.|\n)*?[0-9]+時[0-9]+分更新(?:.|\n)*?の話題)
004 MSG_BOX     %MatchData%
005 FileWrite   %MatchData%     %DeskTop%\yahoo.txt
001 テキストファイル「yahoo.txt」を初期化。無い場合は空のファイルを作成
002 Webドキュメントデータを取得。
003 正規表現を利用したデータのチェックと取得(上項の正規表現を利用したデータチェックを参照)
004 メッセージボックスにデータを表示
005 同データをファイル「
%DeskTop%\yahoo.txt」に追記出力。「%desktop%」はデスクトップを表す
006 完了メッセージ表示


コードの使用方法



正規表現

例1 バージョンと日付

正規表現を利用してバージョンと日付の部分を抜き出します。

下記の例では、当ウェブサイトからバージョンと日付を抜き出します。
結果は、メッセージボックスに表示。
001 IEGetDoc    http://mt-soft.sakura.ne.jp/web_dl/petit_tool/mrecorder/frame/default.html
002 CheckData   %GotData%       Ver ([0-9.]+) [0-9./]{8,10}.*ダウンロード
003 MSG_BOX     バージョン  %MatchData%
004 CheckData   %GotData%       Ver [0-9.]+ ([0-9./]{8,10}).*ダウンロード
005 MSG_BOX     日付        %MatchData%
正規表現部分    Ver [0-9.]+ [0-9./]{8,10}.*ダウンロード

  "Ver" で始まり"ダウンロード"で終わる。その間の文字が、
  0-9の数値、またはピリオドが一個以上 → 全角空白 → 0-9またはピリオド、スラッシュが8個以上10個以内
  の部分を取り出す。結果は、右図のようになる。
  ()で括った部分がそれぞれ取り出される。
  実際には、バージョン、日付ともに、もう少し厳密な表現式にしたほうがよいかも。



コードの使用方法


アプリ制御

アプリ状態により待機
アプリの状態により待機します。

下記の例では、
1.メッセージを表示して
2.メモ帳が開くまで待機します。
3.メッセージを表示して、メモ帳が閉じるまで待機します。
4.完了メッセージを表示して終了(5秒後)

アプリの特定は、ウィンドウのタイトル(部分指定可)、クラス名いずれか、または両方を指定します。
	SHOW_MSG	//  MSG:メモ帳を開いて下さい		pixel			0	340	248	699	459	0,-2147483643,0,0,-2147483640,12,MS Pゴシック,False,False,False,False,	[%NL%]新規の「メモ帳」を開いてください。[%NL%]「メモ帳 - 無題」を検知したら次に進みます。[%NL%]00000
	AP_Wait	// 待機:メモ帳が開くまで	60000									未起動	無題 - メモ帳
	SHOW_MSG	//  MSG:待機		pixel			0	340	248	699	459	0,-2147483643,0,0,-2147483640,12,MS Pゴシック,False,False,False,False,	[%NL%]メモ帳を閉じると待機を解除して次に進みます。00000
	AP_Wait	// 待機:メモ帳が閉じるまで	60000									起動中	無題 - メモ帳
	SHOW_MSG	//  MSG:完了		pixel			0	340	248	699	459	0,-2147483643,0,0,-2147483640,12,MS Pゴシック,False,False,False,False,	[%NL%]メモ帳が閉じられました。51000
      

   
コードの使用方法
アプリが開いている、または閉じているかを調べたいだけの場合は、IsApExist関数で判定できます。
戻り値が1であればアプリが存在(起動中)、0の場合は未起動を表します。