DirectInput アプリケーションにテキストを挿入する必要があります。SendInput を使用していますが、直接入力では仮想キー コードを使用できないため、Unicode を使用する必要があります。今、注入したくないキーは仮想キー コードとしてファイルに登録されており、リアルタイムで Unicode に変換する必要があります。
return1 = ToUnicode(vk, MapVirtualKey(vk, MAPVK_VK_TO_VSC), NULL, buffer, 1, 0);
これは私のコード文字列です。vk は int の仮想キーで、buffer はwchar_t配列の大きな 1 単位です。ToUnicodeでは機能しなかったため、単純なwchar_tだけでは使用できませんでした。ただし、この関数は毎回 0 を返すだけなので、関数がキーを変換できなかったことを意味します。記録のために、「wasd」などの標準のキーを使用していますが、特殊文字は使用していません。誰かがなぜこれが起こるのかを理解できるなら、私は本当に助けが欲しい.
ご検討ありがとうございます!
編集:また、私の怠惰と戦い、古いスイッチとブレークを記述して値を変換すると便利でしょうか? 例えば。
wchar_t unicode;
switch (vk)
case '0x30':
unicode = '48';
//ecc...