かな入力の「ろ」

  • ローカル
    • 日本語入力OFFで「\」
      • WM_KEYDOWN W:00E2 L:00730001
      • WM_CHAR W:005C L:00730001
      • WM_KEYUP W:00E2 L:C0730001
    • 日本語入力ONで「ろ」
      • WM_KEYDOWN W:00E5 L:00730001
      • WM_KEYUP W:00E2 L:C0730001
    • 確定
      • WM_KEYDOWN W:00E5 L:001C0001
      • WM_CHAR W:0082 L:00000001
      • WM_CHAR W:00EB L:00000001
      • WM_KEYUP W:000D L:C01C0001
  • VNC使用
    • 日本語入力OFFで「\」
      • WM_KEYDOWN W:00DC L:007D0001(lParamの値が変)
      • WM_CHAR W:005C L:007D0001
      • WM_KEYUP W:00DC L:C07D0001
    • 日本語入力ON
      • WM_KEYDOWN W:00E5 L:00000001
    • 日本語入力ONで「ろ」
      • WM_KEYDOWN W:00E5 L:00730001
      • WM_KEYUP W:00DC L:00730001
    • 確定
      • WM_KEYDOWN W:00E5 L:001C0001
      • WM_CHAR W:0081 L:00000001
      • WM_CHAR W:005B L:00000001
      • WM_KEYUP W:000D L:C01C0001

こんな感じ。
WはwParam LはlParam(どちらも16進数)。
WM_なんちゃらはウィンドウメッセージ名。

メッセージ内容にも直接書きましたが、vnc経由だと以下の問題が起きていることがわかりました。

  • 「Shift+0」を押下したとき、WM_KEYDOWNイベント(W:0030,L:000B0001)メッセージがこない
  • 右下のバックスラッシュのコードが違う

これらをVNCでもローカルで操作したのと同じようにメッセージを送るよう対処すればいいわけです。
ただ、ハードコーディングしちゃうと漢字キーPatch3のときと同じく英字キーボードを使ったときにおかしくなるので修正方法を考えないといけません。

続きは後日・・・