0

Windows 7 Ultimate 64 ビットを使用しています。これは私がオンラインで偶然見つけた機能で、以前は問題なく使用していましたが、現在は問題が発生しています。送信する文字に関係なく、スラッシュのキーストロークを送信するだけ/です。関数は次のとおりです。

void GenerateKey(int vk, BOOL bExtended)
{

    KEYBDINPUT  kb = {0};
    INPUT       Input = {0};

    /* Generate a "key down" */
    if (bExtended) { kb.dwFlags  = KEYEVENTF_EXTENDEDKEY; }
    kb.wVk  = vk;
    Input.type  = INPUT_KEYBOARD;
    Input.ki  = kb;
    SendInput(1, &Input, sizeof(Input));

    /* Generate a "key up" */
    ZeroMemory(&kb, sizeof(KEYBDINPUT));
    ZeroMemory(&Input, sizeof(INPUT));
    kb.dwFlags  =  KEYEVENTF_KEYUP;
    if (bExtended) { kb.dwFlags |= KEYEVENTF_EXTENDEDKEY; }
    kb.wVk = vk;
    Input.type = INPUT_KEYBOARD;
    Input.ki = kb;
    SendInput(1, &Input, sizeof(Input));

    return;
}

これが私がそれを呼び出す方法です: GenerateKey('x', FALSE);

ただし、代わりにxを取得し/ます。何が問題なのか誰にもわかりますか?Visual Studio 2008 を使用しています。

4

1 に答える 1

1

KEYBDINPUT.wVk は仮想キー コードであり、ASCII 文字ではありません。

http://msdn.microsoft.com/en-us/library/ms646271(v=vs.85).aspx

于 2011-03-05T06:57:02.107 に答える