我打電話從C#這樣的功能: GetKeyboardStatus()如何檢查返回的位掩碼值?
望着文檔它說,它返回一個位掩碼值。我的代碼的目標是確定設備是否具有包含字母數字字符的物理鍵盤。我已經成功地調用了這個函數,返回值是15.但是由於我不瞭解位掩碼,我不知道如何將它與0x0008值進行比較,根據文檔「指示鍵盤硬件有字母數字鍵「。我不會將此標記爲Windows Mobile或Compact Framework問題,因爲我認爲您需要理解回答我的問題的所有內容都是位掩碼和C#,我希望答案能夠擴展我對如何使用位掩碼的理解(雖然沒有要求)。這是我的代碼。我認爲這是錯誤的唯一部分是return語句:
public static bool HasAlphaNumericKeys {
get {
const uint KBDI_KEYBOARD_ALPHA_NUM = 0x0008;
uint returnValue = GetKeyboardStatus();
return returnValue == KBDI_KEYBOARD_ALPHA_NUM;
}
}
[DllImport("coredll")]
private static extern uint GetKeyboardStatus();
感謝試圖幫助,但我發現,這是不以確定是否有物理鍵盤,字母數字鍵的可靠方法。我嘗試了兩種設備,一種是鍵盤,另一種是沒有,GetKeyboardStatus函數爲它們返回15,所以我甚至不能在答案中測試位掩碼的解釋。