我只是想知道什麼是虛擬鍵盤,這些命令之間的區別是:虛擬鍵盤命令
KEYEVENTF_EXTENDEDKEY
和KEYEVENTF_KEYUP
是。
到處都是我看過的,它只是給了我一個基於整數的描述,不過我只想知道他們每個人都幹了些什麼。
我只是想知道什麼是虛擬鍵盤,這些命令之間的區別是:虛擬鍵盤命令
KEYEVENTF_EXTENDEDKEY
和KEYEVENTF_KEYUP
是。
到處都是我看過的,它只是給了我一個基於整數的描述,不過我只想知道他們每個人都幹了些什麼。
您已經標記了VB.NET的問題,但這些實際上與VB.NET沒有任何關係。它們是在Windows頭文件中定義的常量,用於Win32 API函數。
就差別而言,您無法通過查看它們的值來說明多少。單個值並不特別重要,這就是使用命名標識符的原因。重要的是它們的使用位置以及這些功能的文檔告訴你它們的含義。
第一個,KEYEVENTF_EXTENDEDKEY
,用於與KEYBDINPUT
結構(其連同例如所述SendInput
函數中使用)來傳遞有關合成鍵盤輸入的信息。如果使用此標誌,則意味着掃描代碼應被解釋爲擴展密鑰。從技術上講,這意味着掃描代碼前面有一個前綴字節,其值爲224(十六進制表示法中的& HE0)。
第二個,KEYEVENTF_KEYUP
,是另一個可用於此結構的標誌。這意味着關鍵是發佈(上行),而不是按(下行)。
有一個鍵盤輸入可用的大致概述here on MSDN。它更詳細地解釋了虛擬密鑰代碼是什麼,擴展密鑰是什麼等。
所以要做一個字母輸入,我必須先'KEYEVENTF_KEYDOWN',然後在'KEYVENTF_KEYUP'之後? – bbesase
@bbesase是的,你可以兩次調用'SendInput'函數,一次使用'KEYEVENTF_KEYDOWN',第二次調用'KEYVENTF_KEYUP'。 –
然後,我不知道爲什麼你需要VB.NET。它已經被SendKeys.Send方法包裝了。 –
'KEYEVENTF_KEYUP'指的是放開所按鍵的事件。例如,按住一個按鍵會觸發'KEYEVENTF_KEYDOWN',釋放它會觸發'KEYEVENTF_KEYUP'。但是我不確定'KEYEVENTF_EXTENDEDKEY'的作用是什麼 – JBelter