1章.まずは基本から。最初はここをお読みください
(例として画面内の指定の画像が変化したらクリックやキー送信を行う方法。)
では、解説を開始します。まず、解凍すると以下のような形になってると思う。
このツールを使用する一連の流れは「INI」フォルダのmacsys.iniと「test_apli」フォルダのcontrol.iniファイルを編集しmadekey.exeを起動し「AUTO開始」ボタンを押せばマクロを開始します。
(また、「test_apli」フォルダは今回サンプルとして追加してあります。本来はユーザさんがマクロ実行したいアプリごとにフォルダを追加作成し、かつcontrol.iniファイルを作成していく感じになります。)
もしファイルの中を見てみてなんとなく構成がわかる人は、いきなりメイン画面説明・マクロ設定方法・コマンド一覧
を見てもらってもいいかもしれませんね。その場合はこのページを読む必要はないかもです。
まず、今回は「画面内の指定の画像が変化したらクリックやキー送信を行う」ことを具体的な例を出して説明します。さきほどのダウンロードしたファイルに「sample_singou.bmp」というのがあるでしょ?それをペイントで開いてください。ここで注意して欲しいのは開いた画像を伸縮、拡大表示はしないで欲しいです。つまり等倍で開いてください。
お使いの環境によっては、ペイントじゃなくて別のツールが起動する場合があり、伸縮、拡大して表示するものがありますから、そこ注意です。ここではウィンドウズに標準で付いているペイントで開いてください。
もしかしてこの信号の色が、例えば左側が青になったら、青の部分をマウスクリックしようとしてます?
正解。だた今回の例ではマウスクリックでなくてマウスの移動にしてあります。
そしたら、さきほどのダウンロードしたファイルに「madekey.exe」というのがあるでしょ?それを起動してください。そうすると初回起動は警告文がでると思うので、ご自分で考え選択してくださいね。
承諾していただければ以下の画面(おまかせmadekey 以下、madekey)がでると思います。
さて、madekeyの左側のリストの「サンプルテスト」をクリックし、これから「AUTO開始」ボタンをクリックしますが、クリックしたら別の作業をしたりしないでください。本ツールは画面の情報を取得し画像判定をしますので、新規でウィンドウを表示したりすると正常にマクロできません。(ちなみに画面の左上からサーチ処理していくのでsample_singou.bmpはなるべく左上にあればベターかと)
また注意点ですが、必ず開いた「sample_singou.bmp」を本ツールの下階層に設置(以下の図のように)にしてください。※「sample_singou.bmp」とmadekeyの間に他ウィンドウがある場合は大丈夫です。
「AUTO開始」ボタンをクリック後、今見ているウィンドウに戻る事もだめですよ?
sample_singou.bmpウィンドウを動かすのもお止めください。
もし間違ってしまった場合は本ツールを強制終了してください。(まだ「AUTO開始」は押さないで続きを読んでください)
※追記事項(2011/10/09)−注意点をひとつ追加します。
「sample_singou.bmp
- ペイント」っていう(ペイント画面の左上の)表示がお使いのパソコン環境によっては「sample_singou -
ペイント」となっている場合があります。
その場合は「おまかせmadekey」の「ターゲットアプリ名」の設定を「sample_singou.bmp -
ペイント」から「sample_singou -
ペイント」としてください。(つまり「.bmp」の文字列を削除する)
こうしないと正常に動作しません。
「AUTO開始」ボタンをクリック後、どうすればいいんですか?
お使いの環境により初期化処理が結構かかる(数分?)可能性があるので、タスクバーの「madekey」を定期的にクリックしてください。下図のように「AUTOを停止しました!!!!」と出れば初期処理が終了しているので、またここに戻ってきてください。ん?何か質問ですか?
解像度が高いユーザさん、つまり他のウィンドウを開いても「sample_singou.bmp」を画面上に維持できる場合でも他の作業はだめなんですか?
その場合は、実はOKなんですが、注意点として他ウィンドウにマクロ操作が送信され思わぬ結果を招く場合があります。ので、その点は各ユーザさんの判断にお任せします。
それでは、「AUTO開始」ボタンをクリックしてください。
無事に「AUTOを停止しました!!!!」がでましたか?出た場合はOKをクリックしてください。
(出ない場合は、掲示板などを設ける予定なのでそちらへ質問してみてください、ただ、すぐに回答できるかわかりません、大変申し訳ない)
そしたら以下の図のように、信号の左側にペイントのバケツで色を流しこんでください。(何色でもOK)
ただし、「sample_singou.bmp」のウィンドウ位置は動かさないでください。ウィンドウ位置が変更されるとmadekeyが正しくマクロできなくなります。(今回の設定では)
ちなみに、ここまでくれば初期処理が終了しているので「sample_singou.bmp」の上に他ウィンドウがかぶっても大丈夫です。
で、これからもう一度「AUTO開始」ボタンをクリックするんですが、うまくいくとマウスポインタが勝手に信号の左側付近に移動します。
延々と勝手に移動する(今回の設定では4秒おき)ので適度にマクロ動作が確認できたところで「CTRL+SHIFT+F10」で終了してください。もしくはタスクバー「madekey」をクリックしてもマクロ動作は止まります。
その後はまたここへ戻ってきてください。
ちなみに「CTRL+SHIFT+F10」でホットキーにてマクロ終了し、madekeyタスクをクリックすると以下の画面が出るのでOKを押してください。
その後に出てくる、「AUTOを停止しました!!!!」も同様にOKを押してください。
「sample_singou.bmp」をmadekeyより下階層にしているのを確認し、
「AUTO開始」ボタンをクリックし、マクロ動作できるかを確認してください。
さて、このような動作がどのようにして成っているかをこれから説明します。
まずは、madekey\test_apli\control.iniをメモ帳などのテキストエディタで開いてください。(madekey\test_apli\control.iniという表記はmadekeyフォルダの中にあるtest_apliフォルダの中にあるcontrol.iniファイルという意味です。念のため)
無事開くと・・・・
なんかいっぱい文字が書いててめまいがするんですが。。。
まずは最初の4行目、行単位に直接解説を入れますのでお読みください。
[app_data] ・・・この行はユーザが変更してはいけない。いじると動かなくなります。
def_key =
""
・・・FileName〜hantei_y(後述)のマクロが発動しなかった場合にデフォルトで送信するクリックまたはキー名を記述する。
def_key_before_wait =
"0"
・・・押す前の待機時間(単位ms)
def_key_after_wait =
"0"
・・・押した後の待機時間(単位ms)
※上記表記は行頭に「;」がある場合はコメント(補足的な解説)なのでそれを除きここでは表示しています。)
例えば、def_key =
"SPACE"、def_key_before_wait =
"1000"、def_key_after_wait =
"2000"とかって設定すると、SPACEを基本送り続るんだけど、押す前に1秒待って、押した後に2秒待つ。
そうそうそんな感じ、1000=1秒ね。でもお前良く解ったな???
今回の場合だとdef_key =
""だから常に何も押さないのね。
あとSPACEやら設定できる値はコマンド一覧に記載します。興味のある人はお読みください。
で、次
FileName0 =
"test_apli\left.bmp"
key_stream0 = "MOUSE_MV"
hantei_houhou0= "NOT
EQUAL"
first_bit_exist0 = "TRUE"
key_before_wait0 =
"2000"
key_after_wait0 = "2000"
search_width0 = "0"
search_height0 =
"0"
hantei_x0 = "0"
hantei_y0 =
"0"
ここが、さっぱり・・・
まずは図を見てから説明に入ったほうが良いかも。
この図を踏まえた上で説明に入ります。left.bmpっていうのは信号の絵の左側の一部の画像なんですね。
この一部分を常に監視して変化があったらキーを送るという構造になってます。さきほど信号に色を入れるとleft.bmpの画像と画面とで不一致が発生するのでマウス移動するんです。
ということで、
FileName0 =
"test_apli\left.bmp"
・・・画面内を検索する画像のパス
key_stream0 =
"MOUSE_MV"
・・・送るキー。ここではleft.bmpの中央にマウス移動
hantei_houhou0= "NOT
EQUAL" ・・・NOT
EQUAL:FileName0の指定画像と画面とで不一致ならkey_stream0のキーを送る。
EQUAL:一致したらkey_stream0のキー送る。
ここではNOT EQUALだから不一致ならキーを送る。
first_bit_exist0 =
"TRUE"
・・・TRUE:「AUTO開始」をクリックするときにFileName0の画像が画面内にある。
・・・FALSE:「AUTO開始」をクリックするときにFileName0の画像が画面内にない。
・・・ここではTRUEだからFileName0の画像が画面内にある。
※ちなみにTRUEだと「AUTO開始」をクリックすると画面内をサーチするので初期処理に結構時間がかかる。あとFALSEの用途に関しては別の章で解説します。
key_before_wait0
=
"2000"
・・・押す前の待機時間(単位ms)
key_after_wait0 =
"2000"
・・・押した後の待機時間(単位ms)
search_width0 =
"0"
・・・今回はここは気にしない
search_height0 =
"0"
・・・今回はここは気にしない
hantei_x0 =
"0"
・・・今回はここは気にしない
hantei_y0 =
"0"
・・・今回はここは気にしない
key_stream0 =
"MOUSE_MV"ってすると勝手にleft.bmpの中央にマウス移動するけど、他の座標にマウス移動とかクリックとかできないんですか?
実はkey_stream0 = "MOUSE_MV 100 200"とすれば画面のx:100
y:200にマウス移動。
key_stream0 = "MOUSE_MV_C 100 200"とすればクライアント領域のx:100
y:200にマウス移動。
key_stream0 =
"L_CLICK 100 200"とすれば画面のx:100
y:200にマウス左クリック。
key_stream0 = "L_CLICK_C 100 200"とすればクライアント領域のx:100
y:200にマウス左クリック。
この辺の設定の詳細はコマンド一覧記載します。興味のある人はお読みください。
で、次
FileName1 =
"test_apli\center.bmp"
key_stream1 = "MOUSE_MV"
hantei_houhou1= "NOT
EQUAL"
first_bit_exist1 = "TRUE"
key_before_wait1 =
"2000"
key_after_wait1 = "2000"
search_width1 = "0"
search_height1 =
"0"
hantei_x1 = "0"
hantei_y1 =
"0"
たぶんなんですけど、各項目の末尾に1番号が付いて、FileName1 =
"test_apli\center.bmp"以外はさっきと同じですよね?
そうそう同じなんですよ。"test_apli\center.bmp"を開いてみると解るかもですが信号の絵の真ん中近辺の一部をくりぬいた画像になっているのが解るんじゃないかと思います。
FileName1〜hantei_y1で設定の一塊になっています。
じゃ、残りの設定も同じ理屈です??
FileName2 =
"test_apli\right.bmp"
key_stream2 = "MOUSE_MV"
hantei_houhou2= "NOT
EQUAL"
first_bit_exist2 = "TRUE"
key_before_wait2 =
"2000"
key_after_wait2 = " 2000"
search_width2 = "0"
search_height2 =
"0"
hantei_x2 = "0"
hantei_y2 =
"0"
そうなります。設定を増やす場合は番号をプラス1していく感じなんです。
あの〜、信号の左と右の両方に色が塗られた場合ってどうなるんです?
実は、番号の若いものの優先順位が高くなっています。ここでは
信号左側の画像設定は0番、右側は2番になっています。0番の方が優先順位が高いので左側にマウスが移動し右側には反応しないようになっています。
0番、1番、2番すべてに当てはまらない場合はdef_key =
""が適用されます。
あの〜、マクロの設定はなんとなくわかりましたが、この設定を呼び出すランチャーがmadekeyの画面になっているんですよね?
ではでは、madekey\INI\macsys.iniをメモ帳などのテキストエディタで開いてください。(madekey\INI\macsys.iniという表記はmadekeyフォルダの中にあるINIフォルダの中にあるmacsys.iniファイルという意味です。念のため)
無事開くと以下のような記述がある(ただし、行頭に「;」がある場合はコメント(補足的な解説)なのでそれを除きここでは表示しています。)ので行単位に直接解説を入れますのでお読みください。
[System]
・・・この行はユーザが変更してはいけない。いじると動かなくなります。
hotkey =
"CTRL+SHIFT"
・・・「AUTO開始」を停止するホットキーの割り当て。次行のvirkeyを設定する必要があります。
virkey =
"F10"
・・・ここを設定する事で、ここでは「CTRL+SHIFT+F10」が停止ホットキーになります。
[Initialize] ・・・この行はユーザが変更してはいけない。いじると動かなくなります。
app_name0="サンプルテスト"
・・・madekey画面の左上のリストに表示される文字でなんでもよい
ctl_file0="test_apli\control.ini"
・・・
これが呼びを行っている
target_app0="sample_singou.bmp - ペイント"
・・・マクロを行う対象のアプリケーション名
app_name0とかctl_file0!!!また番号が付いてる!
つまり設定をユーザさんが追加できます。例えば
app_name1="なんとかゲーム"
ctl_file1="nankano_game\control.ini"
target_app1="daradius -
シューティング"
target_app1に設定するアプリケーション名は、CTRL+ALT+DELで表示される「Windowsタスクマネージャ」で確認できるかと。気をつけないといけないのは、半角スペースが入っていたりする事かな。
解説は以上です。
重要:
当ページに記載された内容および本ツールによるトラブル、データ破損等、当方は一切の責任を負いかねます。