2009-09-18
MetaTraderにショートカットキーを割当てるAccela.ahk(2)
今日は、AutoHotKey でMetaTraderにキーボードショートカットを割当てる際の特殊なパターンを追加で紹介します。
AutoHotKeyの使い方は、過去記事1、過去記事2を参照してください。
MT4のテンプレートをショートカットで呼び出す例。
テンプレートに保存した設定をキータッチで切り替えたい時に使えます。
#1:: PostMessage, 0x111,35511,0 ; WinWaitActive , ahk_class #32770 Send ADX.tpl{Enter} return
このコードは、「Win + 1」を押したら、テンプレート呼び出し命令(35511)を送って、
ダイアログがアクティブになるのを待って(WinWaitActive )
「ADX.tpl」と入力して、Enter を押しています。
キー割り当ての「#1」と、テンプレート名の「ADX.tpl」を書き換えて使ってください。
ちなみに、テンプレート呼び出しメニューは、以下のような誤訳になっています。
日本語UIだけを使っていると、こういう罠に気づかないので注意してください。(笑)
インジケータやEAを、確認ダイアログ無しで張り付ける例。
EAやインジケータにはMT4上で、「Alt + G」のようなショートカットを割当てることができます。
しかし、普通にAlt + G を押すと、確認の為の設定ダイアログが出てきてしまいます。
これをAutoHotKeyで、OKさせてしまうというコードです。
#2:: Send !g WinWaitActive , ahk_class #32770 Send {Enter} return
このコードは、「Win + 2」を押したら、「Alt + G」(!g)を送って、
ダイアログがアクティブになるのを待って(WinWaitActive )
Enter を押しています。
画像認識してタブやボタンを押す例。
どんなコマンドを送って操作したら良いのかわからない時の最終手段です。
下記の図で、グレーになっている取引タブを押したい場合、
まず、画面をキャプチャして、グレーになっている取引タブの画像を切り抜いて、TradeTab.bmpという名前で、Accela.ahkと同じフォルダに置きます。
コードは、
#3:: ImageSearch, FoundX, FoundY, 0,0, A_ScreenWidth, A_ScreenHeight, TradeTab.bmp if ErrorLevel = 2 MsgBox Could not conduct the search.(TradeTab.bmp Not Found?) else if ErrorLevel = 0 { ;MsgBox The BMP was found at %FoundX%x%FoundY%. Click %FoundX%, %FoundY% } return
と書きます。
「Win + 3」が押されたら、「TradeTab.bmp」という画像と一致する場所を画面内から探し出し、クリックする..というものです。
かなり原始的な手法ですが、いざという時に役立つことがあるので、参考にしてください。