2025年11月15日

【薙刀式】Win11と新IME

Windows11になったあとにMS-IMEの仕様が多少変更になり、
「旧バージョンのIMEを使う」にチェックを入れないと、
オリジナル版の薙刀式 on DvorakJの機能が正しく反映されなくなった。

とりあえず、以下のことができなくなるのを確認。
・シフト文字が出なくなる
・IMEのオフが無変換キーを押したときの挙動?

この二つに関しては、なんとかして解決したので、
それを記録しておく。


・シフト文字が出なくなる

シフト文字を打つと英数の大文字が出る。
ということは、英文字にはSandSが効いている状態だ。
また、スペースキーを押しながらではなく、
本来のシフトキーを押しながらでも同様の挙動だった。
SandSは効いているが、文字部分をコントロールできていないようだ。

とるさんが先行して調査してくれていたが、
https://github.com/tor-nky/KeyLayout/tree/master/Naginata_v16/Win/DvorakJ%20for%20NewMSIME

この部分の、Google日本語入力を使うにチェックを入れると、
なぜかSandSでシフトができるようになることが判明。

なんでかわからんが、動いているのでヨシ!


・IMEのオフが無変換キーを押したときの挙動になるっぽい

オリジナルの薙刀式のコードを見ると、
IMEオン(英数部分で定義)……vkF2(IMEオンの仮想キーコード)
IMEオフ(薙刀式部分で定義)……vk1D
になっている。
ん? オフ部分が無変換のキーコードだ。
なんでこうしたんだっけ?

記憶をさかのぼると、JISキーボードを使っていたときに、
まだIMEオンオフの直接のキーコードがOS側に実装されていないときに、
無変換キーを使ってIMEオフキーにしていた名残を、
まだ使っていたようだ。

で、IMEオフのキーコードを調べると、vkF1。
でもvkF1にしても動作しない。なんでや?

とるさんのキーコードを見てみると。
vkF2でIMEオンにしたあと、全角半角のvkF1で、
強制的にオフにしているようだ。
ふむ。それなら無理やりながら成立する。
なんで直接IMEオフのキーコードが通用しないんだ?

https://learn.microsoft.com/ja-jp/windows-hardware/design/component-guidelines/keyboard-japan-ime
の公式ガイドから見ても、
IMEオン Lang1 0xF1
IMEオフ Lang2 0xF2
になっている。
で、最後の
VK_IME_ON 0x16
VK_IME_OFF 0x1A
の項と関係ある? と思って書き換えてみた。

具体的には、
IMEオンのところに、{vk16}
IMEオフのところに、{vk1A}

に書き換えると……機能する模様!
じゃあvkF2ってなに?変換キー(物理)のことかしら?

偶然変換キーがIMEオンになってたから、こっちだけ機能したのかもしれないなあ。



あとは記号部分、……と脚本マクロの×   ×   ×の部分だけか。なぜか改行してしまうね。
対処法はとるさんのページでなんとかなるが、
根本原因を詰めたいところだな。
なんでこれが起こるのかわかれば対処法はわかるはず……。

posted by おおおかとしひこ at 14:48| Comment(14) | TrackBack(0) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
; v14 ,s英 CAPITAL
; v15 ,sc日 KANA
; v16 , IME_ON
; v19 ,a全 KANJI
; v1A , IME_OFF
; v1C ,変 Henkan
; v1D ,換 Muhenkan
; vF0 ,英 AlfaNumeric
; vF1 ,s日 KATAKANA
; vF2 ,日 HIRAGANA
; vF3 ,全 SBCSCHAR
; vF4 ,s全 DBCSCHAR
; vF5 ,a日 ROMAN
; vF6 ,as日 NOROMAN

紅皿を使ってたときに調べたものになります。結論からいうと、F2は[カナ/かな|ローマ字]単打です。シフトでF1(カナ)、オルトでF5(ローマ字)になります。
変換キーは場合によりますが基本1Cです。
Posted by かなで at 2025年11月15日 15:48
>かなでさん

ありがとうございます。
JISキーボード専用時代の、
ひらがなカタカナキーでIMEオン、
無変換キーでオフ、
という設定がゾンビのようにどこからか侵入してきた、
というのが現状かもですね。

IMEオンオフのキーコードがWin10に実装されたあたりで、
このへんを書き換えたはずなんですが、
いつの間にか元に戻ってたくさいなー……

あとは謎の記号の挙動だな。
Posted by おおおかとしひこ at 2025年11月15日 17:49
こんにちは。

先日のWindows11のアップデートで、Google IME+Dvorakjでの薙刀式入力が文字化けしました。システムの復元で対処しています。原因はわかりません。
Posted by YT at 2025年11月18日 08:10
>YTさん

レポートありがとうございます。

詳しくその文字化けの記録取れてます?
たとえば、
あいうえおかきくけこがぎぐげこしゃしゅしょじゃじゅじょが、
それぞれ何に化けたかわかれば、
原因と対処法がわかるかもしれません。

ちなみにどのバージョンか特定できればありがたいです。
僕のはWindows11 Version 24H2、KB5066835のようです。
Posted by おおおかとしひこ at 2025年11月18日 09:29
申し訳ありません。
記録は取っていません。
今のところ、私の環境以外で問題が起きたことを知らないので、一ヶ月ほど後にWindows11をアップデートして、その時記録を取ります。
Posted by YT at 2025年11月18日 13:56
>YTさん

了解です。
Windowsは近所のスーパーのセールのようにバージョンアップを繰り返してて、
そのたびにいろんな不整合が現れては消えています。
今不具合が出ていても次にはそれが消える可能性もあり、
それ以降すべて使えなくなる、
ということもなさそうです。

また、ブラウザやテキストエディタのバージョンによっても相性があるみたいで、
その不具合がOSのせいなのかすら特定しにくい状況です。

昔経験した例で言うと、
バージョンアップしたら、
デフォルトのキーボードが109(JIS)から、
106(US)に勝手に変更されてたことがありました。
これを特定するのはなかなか大変なことです。

なので、
既知の対処法で対処できる問題かどうかを切り分けるために、
不具合のディテールがキモになります。
仮に僕に見当がつかなくても、
別の詳しい人ならわかることがあるかもしれないので。
「不具合がありました」だけだと、
「それはご愁傷様です」しか言えないんですが、
「AAがBBに化けました」があると、
「それはCCかDDが原因かもしれないので、
EEまたはFFを試してください」とこちらでも考えられますね。
Posted by おおおかとしひこ at 2025年11月18日 14:13
まだカナ入力の練習段階で、編集モードは確認していませんが、記事の対策をした上での報告をします。

バージョン:25H2
ビルド:26200.7171

上記では、特にカナ入力に不具合はありません。
常に最新版をテストするためのpcで練習しているため、何かありましたらまた報告します。
Posted by あかり at 2025年11月19日 10:31
>あかりさん

報告ありがとうございます。

「……」のあと改行してしまう問題は、
chromeのテキストボックス内でもたまに起こる
(常にかは不明)ので、
なんでなのか調査しないとなー……
「?確定」とかでは起こらないので、
間に変換が入ってるのかしら。
Posted by おおおかとしひこ at 2025年11月19日 10:55
編集モード内の改行してしまうものは、こちらの環境では単純に改行を削除するだけで解決しました。(なぜだか入力後に確定されます)
Posted by やましぃ at 2025年12月02日 00:09
ちなみにWindowsは11の最新版です。
Posted by やましぃ at 2025年12月02日 00:10
>やましぃさん

情報ありがとうございます。
……なんで?
何が起こってるのか知りたい……
Posted by おおおかとしひこ at 2025年12月02日 06:12
>大岡さん

情報としては弱いですが……

職場の同僚に聞いてみたら、MS-IME(他のIMEは分からない)は、変換可能性のないUnicode文字列または変換できない文字列を直接受け取ると、勝手に確定する(未確定状態を維持できない・しない)仕様とのことです。

厄介なのが、アップデートにより未確定で保持できる文字の種類が変わるみたいです。

改行しない時もあると言うのが解せないですが(処理が高速でエンターが抜けているだけ?)、解決できる問題であるうちはまだ良し、としておこうと思います。
Posted by やましぃ at 2025年12月02日 10:26
>やましぃさん

ええ……なにそれ……
たぶん旧バージョンのIMEではそうなってなかったので、
新IMEになってからの仕様?
それとも「…」が最近そっちの文字列に加わったとか?

うーん、DvorakJでは、
AHKのSend String関数を使ってると思われるんですが、
その挙動も最近は不安定ということかー……

一応対策は考えてあって、
「…」を「さんてん」読みで辞書登録しておき、
「さんてん」「空白」「確定」で出すことなんですが、
「野球のスコアは2点対3点であった」とかが難しくなりますw
あるいは日常語でないもの「ほげほげさんてん」
とかで登録してもいいですがね。
Posted by おおおかとしひこ at 2025年12月02日 10:34
>大岡さん

今のところは辞書登録ならおかしな挙動になる可能性は低いと思うので、それが丸いと思います。
Posted by やましぃ at 2025年12月02日 11:07
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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

この記事へのトラックバック