特定の文字(ロシア文字Э
)の入力を自動化する必要があります。Spy ++では、対応するメッセージは次のようになります。
WM_CHAR chCharCode: '221' (221) cRepeat:1 ScanCode:28 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
このメッセージをプログラムで送信するために、私は次のDelphiコードを使用します。
SendMessage(Self.PassengerGrid, WM_CHAR, WPARAM(221), LPARAM($280001));
Spy ++でコードを実行した結果を調べると、次のメッセージが表示されます。
WM_CHAR chCharCode: '89' (89) cRepeat:1 ScanCode:28 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
wParam
私のSendMessage
電話に何か問題があるに違いない。
どうすれば修正できますか(がにchCharcode
等しくなるように221
) `?
アップデート1:
- このエラーが発生するマシンには、英語とロシア語の2つのキーボード言語があります。
次のコードが
SendMessage(MyGridHandle、WM_KEYDOWN、VK_OEM_7、LPARAM($ 390000)); SendMessage(MyGridHandle、WM_CHAR、WPARAM(221)、LPARAM($ 280001)); SendMessage(MyGridHandle、WM_KEYUP、VK_OEM_7、LPARAM($ c0390001));
が実行されると、選択した言語(トレイアイコンによる)がロシア語から英語に変わります。
- WM_CHARで送信する文字が何であれ
WPARAM
、メッセージの文字は常に0x59
(89
)です。
更新2:WM_UNICHAR
代わりに使用してもWM_CHAR
効果はありません。