; Accela.ahk(アクセラ) ; "Copyright (c) 2009, fai" ; ; ;使用時は ;http://www.autohotkey.com/download/ をインストールする ;コメントアウトは先頭に「;」を書く。もしくは、 /* */ で囲む ;「#If」で始まる行は削除注意。 ;修飾キー ^ Ctrl , ! Alt , + Shift , # Win ;MT4ウィンドウに限定 #IfWinActive ahk_class MetaQuotes::MetaTrader::4.00 ;Fast Navigation にフォーカスがあるときは1を返す関数 CheckFN(){ ControlGetFocus, control IfNotInString, control, Edit,return 0 return 1 } ;------------------------------------------------------------------- ;以下が、キー割り当て設定。---ラインで区切られたブロック単位で削除可能。 ;------------------------------------------------------------------- ;MT4に割当てたキーの組み合わせを1キーで押す場合。 ;「Alt」=「! 」, 「Ctrl」= 「^」という表記に注意。 A::Send !a ; Alt + a,Script割当てしたものを実行 ;------------------------------------------------------------------- C::Send ^f ; Ctrl+ F,Cが押されたらクロスカーソル ;------------------------------------------------------------------- ;メッセージ送信後、クリックする場合、複数行に分けてreturn を書く E:: PostMessage, 0x111,33253,0 ;テキスト MouseClick return ;------------------------------------------------------------------- ;直接メッセージを送るだけの場合。 F::PostMessage, 0x111,33237,0 ;フィボナッチ ;------------------------------------------------------------------- H:: PostMessage, 0x111,33244,0 ;水平線 MouseClick return ;------------------------------------------------------------------- L:: PostMessage, 0x111,35463,0 ;価格左 MouseClick return ;------------------------------------------------------------------- P:: PostMessage, 0x111,35464,0 ;価格右 MouseClick return ;------------------------------------------------------------------- S::PostMessage, 0x111,33054,0 ;画像保存 ;------------------------------------------------------------------- T::PostMessage, 0x111,33257,0 ;トレンドライン ;------------------------------------------------------------------- V:: PostMessage, 0x111,33260,0 ;垂直線 MouseClick return ;------------------------------------------------------------------- ;特殊なキーへの割り当て例 `;::Send {+} ;「;」キーに拡大 vk1Csc079::Send {End} ; 変換キーに END vk1Dsc07B::Send {Home} ; 無変換キーに Home vkF2sc070::Send {+} ; ひらカタキーに + (不安定かも?) AppsKey::Send {-} ; menuキーに - ;------------------------------------------------------------------- ;キーコンビネーションの例 ;Winキー + 1 #1::MsgBox, 262208,, Windows+1 ;SPACEキー + q Space & Q::MsgBox, 262208,, Space+q ;------------------------------------------------------------------- ;既存のファンクションキーも上書きできる ;使うなら先頭の;を消す。 ;F2::Send !a ; Alt + a,Script割当てしたものを実行 ;F3::Send !b ; Alt + b,Script割当てしたものを実行 ;F4::Send !c ; Alt + c,Script割当てしたものを実行 ;------------------------------------------------------------------- ;操作時に効果音を鳴らしたい時は複数行に分けてreturn を書く F5:: PostMessage, 0x111,33324,0 ;チャートの更新 SoundPlay,*48 ;システム音の再生例 ;SoundPlay,error.wav ;error.wav を同じフォルダに置く場合。 return ;------------------------------------------------------------------- ;確認ダイアログを作るなら以下のように。 ;Windows + D で矢印全削除 #D:: MsgBox, 4,, Would you like to delete Arrows? IfMsgBox Yes PostMessage, 0x111,33204,0 ;矢印の全削除 return ;------------------------------------------------------------------- ;数字キーに時間足変更を割り当てた例 ;Fast Navigation を使う場合は以下のように書く。 ;Fast Navigation を使う場合はアルファベットの割当ても書き換える必要有。 1:: if CheckFN()==0 PostMessage, 0x111,33137,0 else Send 1 return ;------------------------------------------------------------------- 2:: if CheckFN()==0 PostMessage, 0x111,33138,0 else Send 2 return ;------------------------------------------------------------------- 3:: if CheckFN()==0 PostMessage, 0x111,33139,0 else Send 3 return ;------------------------------------------------------------------- 4:: if CheckFN()==0 PostMessage, 0x111,33140,0 else Send 4 return ;------------------------------------------------------------------- 5:: if CheckFN()==0 PostMessage, 0x111,33135,0 else Send 5 return ;------------------------------------------------------------------- 6:: if CheckFN()==0 PostMessage, 0x111,33136,0 else Send 6 return ;------------------------------------------------------------------- 7:: if CheckFN()==0 PostMessage, 0x111,33134,0 else Send 7 return ;------------------------------------------------------------------- 8:: if CheckFN()==0 PostMessage, 0x111,33141,0 else Send 8 return ;------------------------------------------------------------------- 9:: if CheckFN()==0 PostMessage, 0x111,33334,0 else Send 9 return ;------------------------------------------------------------------- #IfWinActive