2021年02月11日

【薙刀式】AHK版バグレポ2

再現不能だが、相互シフトが入りっぱなしになるバグ。


とても高速に打っていた時に起こった。
再現しようと思ったが出来ていない。


症状1:

単打を打ってもシフト文字が出る。
シフトが入りっぱなしになっているよう。
スペースを押して離しても元に戻らない。

症状2:

編集モードを素早くコントロールしようとして、
「と」(D)が入りっぱなしになった。
たとえばJを打つとD+Jの「ど」が出た。


解除法:

相互シフトの文字を入力すると治った。
1はシフト文字を一回打つと復帰、
2は編集モードの何かを打ったら復帰。


相互シフトが定義されているところで、
シフトが入りっぱなしになり、
帰ってこない現象は、
DvorakJ版でもたまに起きた。

Downが入りっぱなしになり、Upが認識されない状態が続く。
そのキーを単独でダウンアップしても治らず、
それが相互シフトで定義されている文字を入れると復帰する、
という現象。

DvorakJはAHKで書かれたアプリであるから、
同根の問題と思われる。
はてさて、AHKの持つ原理的な問題か、
だとすると解消する方法はあるのか、
限界いっぱいの話なのか。


対症療法としては、
DvorakJ版では2ミリ秒程度遅らせていた。
手が処理より速い時があるのだろう、
と仮説を立てている。

しかしせっかくの快速AHK版、
2ミリ秒遅延は勿体ない…



あ、あと固有名詞モードに転記ミスあり。
Qは臨兵闘者皆陣烈在「前」ですね。
まあ使う人が適宜編集するだろうからいいけど、
早九字という呪文なので、間違うと呪われるかも?
posted by おおおかとしひこ at 11:44| Comment(4) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
バグが消えない呪いにかかったようです(汗)
いろいろ直してみました。

キー上がってるのに直らないのは、キーが上がったとの信号が Autohotkey にたまに来ないからだと思うので、機能強化したEscキーを押してリセットしてください。
Posted by なかやさとる at 2021年02月11日 22:09
>なかやさとるさん

ああ、やはりAutoHotKey側がKeyUpを認識してないんですね。
キーログ取って調べようと思ってたんですが、原因判明して良かった。
DvorakJ版でも存在するやつなので、
これはもはやAutoHotKeyの仕様ですかね。
スーパーESC?の件も込みでこの限界ごと明記しといた方が良さそうですね。

経験上かなり速い打鍵の時になりがちなので、
4キー以上のロールオーバーとかが原因かもと疑っています。
何か打ってる→編集モードのキーいくつかガチャガチャ、の時にもなりやすいので。
USBは6ロールオーバーまでは仕様上大丈夫なはずだから、
受け側の問題ですかね…
Posted by おおおかとしひこ at 2021年02月11日 22:22
すみません、リセット機能強化で余計なバグを巻き込んでしまったようです。
緊急で修正しました。

USBは、Shift、Ctrl、Alt、Winの修飾キーが左右で計8キーの状態と、その他は最大6個の押されているキーを知らせてくれるのが標準らしいです。
それをそのまま Autohotkey に持ってこれないのが残念です。

私のプログラムが超高速入力に対応しているか調査中です。1秒間に1000回入力……は無理そうですが
Posted by なかやさとる at 2021年02月12日 07:11
>なかやさとるさん

シフト押しながらのロールオーバーとか、
ロールオーバーしまくってるときに、自覚なしにWinやCtrlに指が触れてる時とかが怪しいのかしら。
タイパーはその辺のキーキャップを外すしねえ…
Posted by おおおかとしひこ at 2021年02月12日 07:40
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。