紅皿のサポートブログ

キーボード配列エミュレーションソフトウェア「紅皿」の不具合や要望はこちらに

benizara ver.0.1.4.711 のリリース

benizara ver.0.1.4.711 をリリースしました。変更点は以下です。

 

osdn.net

 

直前の記事にて名無しさんにご指摘いただいた以下の不具合を対処しました。

 

ver.0.1.4.710でShift+スペースを打鍵すると半角スペースではなく全角スペースになってしまいます。
benizaraを一時停止すると半角スペースが入力できることからbenizaraの不具合かと思われます。

 

症状発生を確認したのは、薙刀式の配列と、NICOLA配列半濁音拡張.bnz におけるローマ字モードです。Space&Shift機能の追加と共に不具合発生したかと思いきや、随分前からこの不具合が発生していたのですね。

紅皿を停止して小指シフトし、スペースキーを打鍵すると半角スペースが出力されるのは、OSがIMEをバイパスして、素のままのキーコードを出力するためと推定しています。

これに対して、紅皿(Autohotkey) で小指シフト時にスペースキーをフックし、スペースキーのキーオンイベントと共にsc039のスキャンコードを出力すると、IMEを経由して出力され、全角スペースに変換されると推定します。これは、期待した動作と異なります。なお、sc039のスキャンコードを Spaceに書き換えても同様な動作となります。

 Shift+スペースを打鍵した際、半角スペースではなく全角スペースになってしまうのは、上記の配列定義ファイルで、ローマ字小指シフトの定義をしており、スペースキーをフックしていたためです。なお、NICOLA配列.bnzなどではローマ字小指シフトを定義していないため、キーフックせずに素のままのキー入力が反映されます。

不具合対策は、小指シフト時にはスペースキーのフックを解除するように修正するというものです。これで、薙刀式の配列や、NICOLA配列半濁音拡張におけるローマ字モードで、Shift+スペースを打鍵すると半角スペースが出力されるようになりました。

 

配列エミュレーションソフトは、所望の配列をエミュレーションするほかは、OSに干渉せず、キーフックは最小限としなければいけません。OSの動作を全てエミュレーションする訳には行かないためです。