2011-03-05 56 views
0

我正在使用Windows 7旗艦版64位。這是我偶然發現的一個功能,之前沒有任何問題,但現在我遇到了問題。無論我發送給它的是什麼字符,它只會發送正斜槓擊鍵/。 下面是函數:C++疑難解答發送擊鍵

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.

+3

這是你來自哪裏得到它:http://stackoverflow.com/questions/4427634/need-help-to-generate-keystrokes-into-existing-application-in-linux-environment-你呢? – 2011-03-05 06:24:52

+0

現在它已經在互聯網上流動了一段時間了。我在cpluscplus.com的論壇上找到了我的副本。 – John 2011-03-05 06:32:03

+0

使用小寫'x'肯定是錯的,它會產生一個F9功能鍵按下(虛擬鍵0x78)。雖然沒有解釋得到'/'。 – 2011-03-05 08:13:21

回答