-1
2番目のパラメータ(bScan)には少し問題があります。keybd_event()bScanコードの検索方法
私の目標は、各ボタンに適したbScanコードを見つけることです。
VOID WINAPI keybd_event(
_In_ BYTE bVk,
_In_ BYTE bScan,
_In_ DWORD dwFlags,
_In_ ULONG_PTR dwExtraInfo
);
keybd_event function Microsoft
私は、キー5のためのボタンがbScancode持っていることを読んだことがある - 六角番号:0x86でを。しかし、私は非常にbScanコードを見つける方法に興味があります。
KeyCode = '5'
keybd_event(VkKeyScan(KeyCode), 0x86, 0, 0); // ‘5’ Press
keybd_event(VkKeyScan(KeyCode), 0x86, KEYEVENTF_KEYUP, 0); // ‘5’ Release
関数MapVirtualKey()は興味深い見てきましたが、残念ながら私はので、私は何かを誤解だと思う5の出力を取得します。誰かが私を啓発するだろうか?どうもありがとうございました。
UINT scanCode = MapVirtualKey('5', MAPVK_VK_TO_VSC);
ドキュメントの先頭に「廃止予定」という大きな警告がありますか?スキャンコードは[簡単に検索する]ことができます(https://msdn.microsoft.com/en-us/library/aa299374(v = 60).aspx)。 –
こんにちはコーディグレイ、あなたの答えに感謝します。あなたは私が "廃止された"警告を見逃している:Dだから私はSendInputを使用すると思います。まだ理解しています。このbScancodeをリクエストする可能性はありますか?だから私はすべてのbScancodesと別のリストを作成する必要があります、私は正しい表示されますか? – Lendoria
スキャンコードをまったく処理する必要はありません。代わりに仮想キーコードを使用して、OSが翻訳するようにしてください。あるいは、 'SendInput()'の場合、代わりに実際のUnicodeテキストを使うこともできます。 –