2013-07-31 105 views
0

我只是想知道什麼是虛擬鍵盤,這些命令之間的區別是:虛擬鍵盤命令

KEYEVENTF_EXTENDEDKEYKEYEVENTF_KEYUP是。

到處都是我看過的,它只是給了我一個基於整數的描述,不過我只想知道他們每個人都幹了些什麼。

+0

'KEYEVENTF_KEYUP'指的是放開所按鍵的事件。例如,按住一個按鍵會觸發'KEYEVENTF_KEYDOWN',釋放它會觸發'KEYEVENTF_KEYUP'。但是我不確定'KEYEVENTF_EXTENDEDKEY'的作用是什麼 – JBelter

回答

4

您已經標記了VB.NET的問題,但這些實際上與VB.NET沒有任何關係。它們是在Windows頭文件中定義的常量,用於Win32 API函數。

就差別而言,您無法通過查看它們的值來說明多少。單個值並不特別重要,這就是使用命名標識符的原因。重要的是它們的使用位置以及這些功能的文檔告訴你它們的含義。

第一個,KEYEVENTF_EXTENDEDKEY,用於與KEYBDINPUT結構(其連同例如所述SendInput函數中使用)來傳遞有關合成鍵盤輸入的信息。如果使用此標誌,則意味着掃描代碼應被解釋爲擴展密鑰。從技術上講,這意味着掃描代碼前面有一個前綴字節,其值爲224(十六進制表示法中的& HE0)。

第二個,KEYEVENTF_KEYUP,是另一個可用於此結構的標誌。這意味着關鍵是發佈(上行),而不是(下行)。

有一個鍵盤輸入可用的大致概述here on MSDN。它更詳細地解釋了虛擬密鑰代碼是什麼,擴展密鑰是什麼等。

+0

所以要做一個字母輸入,我必須先'KEYEVENTF_KEYDOWN',然後在'KEYVENTF_KEYUP'之後? – bbesase

+0

@bbesase是的,你可以兩次調用'SendInput'函數,一次使用'KEYEVENTF_KEYDOWN',第二次調用'KEYVENTF_KEYUP'。 –

+0

然後,我不知道爲什麼你需要VB.NET。它已經被SendKeys.Send方法包裝了。 –