;######################################################
;## 最初に呼び出される関数 ##
;######################################################
;無シフト面を出力
;uシフト面だったらuShift()の呼び出し
;dシフト面だったらdShift()の呼び出し
;kシフト面だったらkShift()の呼び出し
Start(FirstKey)
{
suspend, on
;--★無シフト面を出力★
if FirstKey = q
send, ra
else if FirstKey = w
send, ru
else if FirstKey = e
send, na
else if FirstKey = r
send, ko
else if FirstKey = t
send, ga
else if FirstKey = y
send, re
else if FirstKey = i
send, si
else if FirstKey = o
send, nn
else if FirstKey = p
send, ku
else if FirstKey = a
send, to
else if FirstKey = s
send, ta
else if FirstKey = f
send, ka
else if FirstKey = g
send, te
else if FirstKey = h
send, ki
else if FirstKey = j
send, no
else if FirstKey = l
send, u
else if FirstKey = `;
send, i
else if FirstKey = z
send, ha
else if FirstKey = x
send, de
else if FirstKey = c
send, ma
else if FirstKey = v
send, mo
else if FirstKey = b
send, xyo
else if FirstKey = n
send, ni
else if FirstKey = m
send, su
;--★uシフト面だったらuShift()の呼び出し★
else if FirstKey = u
uShift()
;--★dシフト面だったらdShift()の呼び出し★
else if FirstKey = d
dShift()
;--★kシフト面だったらkShift()の呼び出し★
else if FirstKey = k
kShift()
suspend, off
}
;######################################################
;## ユーザーからのキー入力を受け付ける関数 ##
;######################################################
;Lnは入力を受け付ける文字列の長さ
;Tnは入力を受け付ける時間
InputKey()
{
input, InputKey, L1 T1, {Esc}
return InputKey
}
;######################################################
;## uシフト面の文字列を出力する関数 ##
;######################################################
;uシフト面を出力
;もう一度uが入力されたら自分自身を呼び出し
;udシフト面だったらudShift()の呼び出し
;ukシフト面だったらukShift()の呼び出し
;それ以外だったらxtuを出力
uShift()
{
suspend, on
SecondKey := InputKey()
;--★uシフト面を出力★
if SecondKey = q
send, rra
else if SecondKey = w
send, rru
else if SecondKey = e
send, xtuna
else if SecondKey = r
send, kko
else if SecondKey = t
send, gga
else if SecondKey = y
send, rre
else if SecondKey = u
uShift()
else if SecondKey = i
send, ssi
else if SecondKey = o
send, xtunn
else if SecondKey = p
send, kku
else if SecondKey = a
send, tto
else if SecondKey = s
send, tta
else if SecondKey = f
send, kka
else if SecondKey = g
send, tte
else if SecondKey = h
send, kki
else if SecondKey = j
send, xtuno
else if SecondKey = l
send, xtuu
else if SecondKey = `;
send, xtui
else if SecondKey = z
send, hha
else if SecondKey = x
send, dde
else if SecondKey = c
send, xtuma
else if SecondKey = v
send, xtumo
else if SecondKey = b
send, xtuxyo
else if SecondKey = n
send, xtuni
else if SecondKey = m
send, ssu
else if SecondKey = `,
send, xtu,
else if SecondKey = `.
send, xtu.
else if SecondKey = /
send, xtu/
;--★udシフト面だったらudShift()の呼び出し★
else if SecondKey = d
udShift()
;--★ukシフト面だったらukShift()の呼び出し★
else if SecondKey = k
ukShift()
;--★それ以外だったらxtuを出力★
else
send, xtu
suspend, off
}
;######################################################
;## dシフト面の文字列を出力する関数 ##
;######################################################
;dシフト面を出力
;もう一度dが入力されたら自分自身を呼び出し
dShift()
{
suspend, on
SecondKey := InputKey()
if SecondKey = q
send, zo
else if SecondKey = w
send, {Space}
else if SecondKey = e
send, xo
else if SecondKey = r
send, xe
else if SecondKey = t
send, di
else if SecondKey = y
send, pu
else if SecondKey = u
send, pa
else if SecondKey = i
send, ge
else if SecondKey = o
send, tu
else if SecondKey = p
send, -
else if SecondKey = a
send, sa
else if SecondKey = s
send, so
else if SecondKey = d
dShift()
else if SecondKey = f
send, ba
else if SecondKey = g
send, bo
else if SecondKey = h
send, hi
else if SecondKey = j
send, xya
else if SecondKey = k
send, xyu
else if SecondKey = l
send, ti
else if SecondKey = `;
send, wo
else if SecondKey = z
send, po
else if SecondKey = x
send, du
else if SecondKey = c
send, xu
else if SecondKey = v
send, he
else if SecondKey = b
send, pi
else if SecondKey = n
send, hu
else if SecondKey = m
send, me
else if SecondKey = `,
send, gi
else if SecondKey = `.
send, mu
else if SecondKey = /
send, nu
suspend, off
}
;######################################################
;## kシフト面の文字列を出力する関数 ##
;######################################################
;kシフト面を出力
;もう一度kが入力されたら自分自身を呼び出し
kShift()
{
suspend, on
SecondKey := InputKey()
if SecondKey = q
send, ze
else if SecondKey = w
send, ne
else if SecondKey = e
send, yu
else if SecondKey = r
send, bu
else if SecondKey = t
send, za
else if SecondKey = y
send, vu
else if SecondKey = u
send, pe
else if SecondKey = i
send, xi
else if SecondKey = o
send, wa
else if SecondKey = p
send, e
else if SecondKey = a
send, do
else if SecondKey = s
send, se
else if SecondKey = d
send, da
else if SecondKey = f
send, a
else if SecondKey = g
send, ke
else if SecondKey = h
send, be
else if SecondKey = j
send, o
else if SecondKey = k
kShift()
else if SecondKey = l
send, ri
else if SecondKey = `;
send, ji
else if SecondKey = z
send, ro
else if SecondKey = x
send, ho
else if SecondKey = c
send, go
else if SecondKey = v
send, ya
else if SecondKey = b
send, yo
else if SecondKey = n
send, bi
else if SecondKey = m
send, mi
else if SecondKey = `,
send, xa
else if SecondKey = `.
send, gu
else if SecondKey = /
send, zu
suspend, off
}
;######################################################
;## udシフト面の文字列を出力する関数 ##
;######################################################
;udシフト面を出力
;もう一度dが入力されたら自分自身を呼び出し
udShift()
{
suspend, on
ThirdKey := InputKey()
if ThirdKey = q
send, zzo
else if ThirdKey = w
send, xtu
else if ThirdKey = e
send, xtuxo
else if ThirdKey = r
send, xtuxe
else if ThirdKey = t
send, ddi
else if ThirdKey = y
send, ppu
else if ThirdKey = u
send, ppa
else if ThirdKey = i
send, gge
else if ThirdKey = o
send, ttu
else if ThirdKey = p
send, xtu-
else if ThirdKey = a
send, ssa
else if ThirdKey = s
send, sso
else if ThirdKey = d
udShift()
else if ThirdKey = f
send, bba
else if ThirdKey = g
send, bbo
else if ThirdKey = h
send, hhi
else if ThirdKey = j
send, xtuxya
else if ThirdKey = k
send, xtuxyu
else if ThirdKey = l
send, tti
else if ThirdKey = `;
send, xtuwo
else if ThirdKey = z
send, ppo
else if ThirdKey = x
send, ddu
else if ThirdKey = c
send, xtuxu
else if ThirdKey = v
send, hhe
else if ThirdKey = b
send, ppi
else if ThirdKey = n
send, hhu
else if ThirdKey = m
send, xtume
else if ThirdKey = `,
send, ggi
else if ThirdKey = `.
send, xtumu
else if ThirdKey = /
send, xtunu
suspend, off
}
;######################################################
;## ukシフト面の文字列を出力する関数 ##
;######################################################
;ukシフト面を出力
;もう一度kが入力されたら自分自身を呼び出し
ukShift()
{
suspend, on
ThirdKey := InputKey()
if ThirdKey = q
send, zze
else if ThirdKey = w
send, xtune
else if ThirdKey = e
send, xtuyu
else if ThirdKey = r
send, bbu
else if ThirdKey = t
send, zza
else if ThirdKey = y
send, vvu
else if ThirdKey = u
send, ppe
else if ThirdKey = i
send, xtuxi
else if ThirdKey = o
send, xtuwa
else if ThirdKey = p
send, xtuxe
else if ThirdKey = a
send, ddo
else if ThirdKey = s
send, sse
else if ThirdKey = d
send, dda
else if ThirdKey = f
send, xtuxa
else if ThirdKey = g
send, kke
else if ThirdKey = h
send, bbe
else if ThirdKey = j
send, xtuxo
else if ThirdKey = k
ukShift()
else if ThirdKey = l
send, rri
else if ThirdKey = `;
send, jji
else if ThirdKey = z
send, xturo
else if ThirdKey = x
send, hho
else if ThirdKey = c
send, ggo
else if ThirdKey = v
send, xtuya
else if ThirdKey = b
send, xtuyo
else if ThirdKey = n
send, bbi
else if ThirdKey = m
send, xtumi
else if ThirdKey = `,
send, xtuxa
else if ThirdKey = `.
send, ggu
else if ThirdKey = /
send, zzu
suspend, off
}
;================================================
;== キー定義 ==
;================================================
^+q::suspend
#UseHook On
q::Start("q")
w::Start("w")
e::Start("e")
r::Start("r")
t::Start("t")
y::Start("y")
u::Start("u")
i::Start("i")
o::Start("o")
p::Start("p")
a::Start("a")
s::Start("s")
d::Start("d")
f::Start("f")
g::Start("g")
h::Start("h")
j::Start("j")
k::Start("k")
l::Start("l")
vkBB::Start(";")
z::Start("z")
x::Start("x")
c::Start("c")
v::Start("v")
b::Start("b")
n::Start("n")
m::Start("m")
#UseHook Off