luamacros・luamacrosコード解説
さて、今回の解説はluamacrosです。
https://www.hidmacros.eu/forum/viewtopic.php?t=241
はい、URLからみて分かる通り
このソフト一応hidmacrosの後継ソフトでして
(いやもう開発終わってるんですが)
hidmacrosではできなかった
キーの押しっぱなしや
コマンドの発行、など
色々便利になったソフトです。
…いや、便利にはなったんですが
そのかわり、長ったらしいコードを
書かなきゃならんハメになり
さらにhidmacrosの強みであった
「他の非リマップキーに干渉しない」という
利も手放してしまいました。
ちなみにmicrosoft IMEでは動かず
google日本語入力じゃないと
日本語入力ができませんし
できたとしてもブラウザや検索欄では
元キーと変換キーの
両方が出力されます。
要するに先程の説明を聞いた方なら
hidkeysequenseでいいんじゃね?
という話になるわけですが
あちらはあちらで無理やり互換性モード(windows7)
で動かしていますし、どっちもどっちという話ですね。
(やっぱり・nodokaが・ナンバーワンッ…!)
そもそも、僕が辿った経緯が
luamacros→hidmacros→hidkeysequense
→autohotkey→nodoka という順番なので
しょうがないっちゃしょうがないです。
まあ、たしかにhidmacrosと比べると
できることは多くなってはいるので
せっかく作ったんで供養がてら
公開しておこうかなー、なんて・・・・・・
さて、その前にまずは導入方法ですね。
こちらのサイトを御覧ください。(ぶん投げ)
https://nigauri.me/remapping-external-numeric-keypad/
あと、エラーコード3が出た場合は
C:直下に全部移動するといいらしいです。
https://hidmacros.eu/forum/viewtopic.php?t=4246
あとあと、sendkeyコードが使えます。
(ちなみにspaceキーは「 」です)
https://learn.microsoft.com/ja-jp/previous-versions/windows/scripting/cc364423(v=msdn.10)?redirectedfrom=MSDN
それでは、各コマンドの解説ですね。
lmc_device_set_name("AAA", "000")
→デバイスID「000」を「AAA」として設定する。
lmc_set_handler("AAA", function(button, direction)
→「AAA」の定義を決定し、押されたボタン
&そのボタンが押されているかどうかを検知する
if (button == 65 and direction == 1) then
lmc_send_keys("y")
→もし、キーコード65(=a)が「押されている」とき
キー「y」を入力する。
(direction=1を条件に入れておかないと入力が重複する)
if (button ==134 and direction == 1) then
lmc_send_input(16, 0, 0)
end
→もし、キーコード134(=f23)が「押されている」とき
キー「shift」を押し続ける。
(16=shiftのキーコード、押す=0)
if (button ==134 and direction == 0) then
lmc_send_input(16, 0, 2)
end
→もし、キーコード134(=f23)が「離された」とき
キー「shift」を離す。(16=shiftのキーコード、離す=2)
※書き始めはif,以降の段落はifelseを使用する※
※条件式の最後はendで締めくくる※
if (direction == 1) then return end
→ボタンを押したとき(押しっぱなし)を検知しない(return)
・・・つまり、ボタンを離したときにしか作動しない
とまあ、こんな感じです。
他にもbutton == 65 という記述は
button == string.byte('A') と
書き換えることもできます。
(使ったことあまりないので
誤作動や遅延あるかも)
キーコード調べたい方は
こちらのサイトをどうぞ。
https://web-designer.cman.jp/javascript_ref/keyboard/keycode/
トグルの組み方は
こちらを参照ください。
https://www.hidmacros.eu/forum/viewtopic.php?t=4425
それではコード例、いってみましょう。
(なお、事前にchangekeyで
tab=f21(キーコード132)
caps=f22(キーコード133)
左shift=f23(キーコード134)
に変換してあります)
以下コード
ーーーーーーーーーーーーーーーーーーーーー
lmc_device_set_name("righthand", "36A92E95")
lmc_set_handler("righthand", function(button, direction)
if (button == 132 and direction == 1) then
lmc_send_keys("y")
elseif (button ==48 and direction == 1) then
lmc_send_keys("6")
elseif (button ==49 and direction == 1) then
lmc_send_keys("7")
elseif (button ==50 and direction == 1) then
lmc_send_keys("8")
elseif (button ==51 and direction == 1) then
lmc_send_keys("9")
elseif (button ==52 and direction == 1) then
lmc_send_keys("0")
elseif (button ==81 and direction == 1) then
lmc_send_keys("u")
elseif (button == 87 and direction == 1) then
lmc_send_keys("i")
elseif (button ==69 and direction == 1) then
lmc_send_keys("o")
elseif (button ==133 and direction == 1) then
lmc_send_keys("h")
elseif (button ==65 and direction == 1) then
lmc_send_keys("j")
elseif (button ==83 and direction == 1) then
lmc_send_keys("k")
elseif (button ==68 and direction == 1) then
lmc_send_keys("l")
elseif (button ==134 and direction == 1)then
lmc_send_keys("n")
elseif (button ==90 and direction == 1) then
lmc_send_keys("m")
elseif (button ==82 and direction == 1) then
lmc_send_keys("p")
end
end
)
lmc_set_handler("righthand", function(button, direction)
if (direction == 1) then return end
if (button ==88) then
lmc_send_keys(",")
elseif (button ==67) then
lmc_send_keys(".")
elseif (button ==86) then
lmc_send_keys("?")
elseif (button ==70) then
lmc_send_keys("!")
elseif (button ==84) then
lmc_send_keys("[")
elseif (button ==71) then
lmc_send_keys("]")
elseif (button ==17) then
lmc_send_keys("{ENTER}")
elseif (button ==54) then
lmc_send_keys("{F16}")
end
end)
lmc_device_set_name("lefthand", "1BC93A1E")
lmc_set_handler("lefthand", function(button, direction)
if (button ==81 and direction == 1) then
lmc_send_keys("-")
elseif (button ==48 and direction == 1) then
lmc_send_keys("1")
elseif (button ==49 and direction == 1) then
lmc_send_keys("2")
elseif (button ==50 and direction == 1) then
lmc_send_keys("3")
elseif (button ==51 and direction == 1) then
lmc_send_keys("4")
elseif (button ==52 and direction == 1) then
lmc_send_keys("5")
elseif (button ==87 and direction == 1) then
lmc_send_keys("w")
elseif (button == 69 and direction == 1) then
lmc_send_keys("e")
elseif (button ==84 and direction == 1) then
lmc_send_keys("t")
elseif (button ==65 and direction == 1) then
lmc_send_keys("a")
elseif (button ==83 and direction == 1) then
lmc_send_keys("s")
elseif (button ==68 and direction == 1) then
lmc_send_keys("d")
elseif (button ==70 and direction == 1) then
lmc_send_keys("f")
elseif (button ==71 and direction == 1) then
lmc_send_keys("g")
elseif (button ==90 and direction == 1) then
lmc_send_keys("z")
elseif (button ==82 and direction == 1) then
lmc_send_keys("r")
elseif (button ==88 and direction == 1) then
lmc_send_keys("x")
elseif (button ==67 and direction == 1) then
lmc_send_keys("c")
elseif (button ==86 and direction == 1) then
lmc_send_keys("v")
elseif (button ==66 and direction == 1) then
lmc_send_keys("b")
end
end)
lmc_set_handler("lefthand", function(button, direction)
if (button ==134 and direction == 1) then
lmc_send_input(16, 0, 0)
end
if (button ==134 and direction == 0) then
lmc_send_input(16, 0, 2)
end
if (button ==133 and direction == 1) then
lmc_send_input(131, 0, 0)
end
if (button ==133 and direction == 0) then
lmc_send_input(131, 0, 2)
end
if (direction == 0) then return end
if (button ==132) then
lmc_send_keys("{BACKSPACE}",150)
end
if (button ==32) then
lmc_send_keys(" ",150)
end
end)
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます