私はこの関数をC#から呼び出しています。 GetKeyboardStatus()返されたビットマスク値をチェックする方法は?
ドキュメントを見ると、ビットマスク値が返されます。私のコードの目的は、デバイスに英数字の物理キーボードがあるかどうかを判断することです。私は正常にこの関数を呼び出し、戻り値は15です。しかし、私はビットマスクを理解していないので、ドキュメントによると0x0008の値と比較する方法はわかりません "キーボードのハードウェア英数字キーを持っています。 "私はあなたが私の質問に答えるために理解する必要があるのは、ビットマスクとC#であると思うので、私はこれをWindows MobileまたはCompact Frameworkの質問としてタグ付けしていません。そして、答えがビットマスクで作業する方法の理解を広げることを望んでいますしかし、必要はありません)。ここに私のコードです。手助けしようとしているため
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();
おかげで、私は、これは、英数字キーを使用して物理的なキーボードがあるかどうかを決定するために信頼性の高い方法ではないことを発見した:私は間違っている部分のみがreturn文だと思います。私は2つのデバイスを試しました.1つはキーボードと1つで、もう1つはGetKeyboardStatus関数で15を返すので、答えのビットマスクの説明もテストできません。