#Persistent #SingleInstance, Force #NoEnv #UseHook #InstallKeybdHook #InstallMouseHook #HotkeyInterval, 2000 #MaxHotkeysPerInterval, 200 Critical ;基本的に割り込みは避ける Process, Priority,, Realtime SendMode, Input SetWorkingDir %A_ScriptDir% SetTitleMatchMode, 2 g_escape_char := {sc01A: "@", sc027: "`;", sc028: "`:", sc033: "`,", sc034: ".", sc035: "/", Q: "Q", W: "W", E: "E", R: "R", T: "T", Y: "Y", U: "U", I: "I", O: "O", P: "P", A: "A", S: "S", D: "D", F: "F", G: "G", H: "H", J: "J", K: "K", L: "L", Z: "Z", X: "X", C: "C", V: "V", B: "B", N: "N", M: "M"} g_keys2sym :=[] g_keys2sym[1] :={} g_keys2sym[2] :={} g_keys2sym[3] :={} g_mikakutei :="" Loop, Read, tsukimisou_kana.txt { global g_keys2sym Array := StrSplit(A_LoopReadLine, "`t") keys := Array[1] StringUpper, keys, keys g_keys2sym[StrLen(keys)][keys] :=Array[2] } fn_send(keys){ global g_key2sym k :="" While (keys){ l := StrLen(keys) If(l>3) l := 3 While (l){ StringRight, t, keys, l s := g_keys2sym[l][t] if(s) break l-- } If(!l){ s := t l := 1 } k := s . k StringTrimRight, keys, keys, l } send, %k% Return } fn_noJP(){ global g_mikakutei global g_windowskey If !(GetKeyState(Crtl,"P")||GetKeyState(Alt,"P")||GetKeyState(Shift,"P")||GetKeyState(RWin,"P")) Return 0 fn_send(g_mikakutei) g_mikakutei := "" send, {Blind}{%A_ThisHotkey%} Return 1 } Return Q:: W:: R:: T:: Y:: U:: O:: P:: sc01A:: G:: H:: J:: L:: sc027:: Z:: B:: N:: sc034:: sc035:: { If(fn_noJP()) Return global g_mikakutei global g_escape_char fn_send(g_mikakutei) g_mikakutei := g_escape_char[A_ThisHotkey] Return } I:: A:: D:: K:: sc028:: X:: C:: V:: M:: sc033:: { If(fn_noJP()) Return global g_mikakutei global g_escape_char If(g_mikakutei=="J") g_mikakutei .= g_escape_char[A_ThisHotkey] else{ fn_send(g_mikakutei) g_mikakutei := g_escape_char[A_ThisHotkey] } Return } E:: S:: F:: { If(fn_noJP()) Return global g_mikakutei global g_escape_char StringRight, t, g_mikakutei, 1 If(t!=A_ThisHotkey) g_mikakutei .= A_ThisHotkey else{ fn_send(g_mikakutei) g_mikakutei := A_ThisHotkey } Return } 1:: 2:: 3:: 4:: 5:: 6:: 7:: 8:: 9:: 0:: sc00C:: sc00D:: sc01B:: sc02A:: sc02B:: sc073:: Space:: Tab:: Enter:: BS:: Del:: Ins:: Left:: Right:: Up:: Down:: Home:: End:: PgUp:: PgDn:: sc029:: sc079:: sc07B:: sc070:: sc03A:: F1:: F2:: F3:: F4:: F5:: F6:: F7:: F8:: F9:: F10:: F11:: F12:: F13:: F14:: F15:: F16:: F17:: F18:: F19:: F20:: F21:: F22:: F23:: F24:: Esc:: AppsKey:: PrintScreen:: Pause:: Break:: Sleep:: Help:: CtrlBreak:: CapsLock:: ScrollLock:: NumLock:: Ctrl:: ;LCtrl:: ;RCtrl:: Alt:: ;LAlt:: ;RAlt:: Shift:: ;LShift:: ;RShift:: Numpad0:: Numpad1:: Numpad2:: Numpad3:: Numpad4:: Numpad5:: Numpad6:: Numpad7:: Numpad8:: Numpad9:: NumpadDot:: NumpadDel:: NumpadIns:: NumpadClear:: NumpadUp:: NumpadDown:: NumpadLeft:: NumpadRight:: NumpadHome:: NumpadEnd:: NumpadPgUp:: NumpadPgDn:: NumpadDiv:: NumpadMult:: NumpadAdd:: NumpadSub:: NumpadEnter:: Browser_Back:: Browser_Forward:: Browser_Refresh:: Browser_Stop:: Browser_Search:: Browser_Favorites:: Browser_Home:: ;Volume_Mute:: ;Volume_Down:: ;Volume_Up:: ;Media_Next:: ;Media_Prev:: ;Media_Stop:: ;Media_Play_Pause:: Launch_Mail:: Launch_Media:: Launch_App1:: Launch_App2:: ;LButton:: ;RButton:: ;MButton:: ;XButton1:: ;XButton2:: ;WheelDown:: ;WheelUp:: ;WheelLeft:: ;WheelRight:: { fn_send(g_mikakutei) g_mikakutei :="" send, {Blind}{%A_ThisHotkey%} Return } LWin:: RWin:: { fn_send(g_mikakutei) g_mikakutei :="" send, {Blind}{RWin Down} Return } LWin Up:: RWin Up:: { send, {Blind}{RWin Up} Return }