知道motorola MC65中橙色按钮的状态

时间:2012-12-13 12:18:42

标签: c# .net compact-framework motorola motorola-emdk

我需要能够知道橙色按钮的当前状态,并在Motorola设备MC65上发生此状态时收到通知。 遗憾的是,我不能使用Symbol.Keyboard.KeyPad类,因为它在MC65上不受支持

1 个答案:

答案 0 :(得分:2)

docos状态:

  

键盘支持的功能 - 只有以下两个API   MC65支持。

     

Symbol.Keyboard.KeyPad.SetKeyState。   Symbol.Keyboard.KeyPad.GetKeyStateEx。

     

MC65不支持以下键。 KEYSTATE_ALT,KEYSTATE_CTRL,   KEYSTATE_NUMLOCK,KEYSTATE_NUMERIC_LOCK,KEYSTATE_CAPSLOCK

     

对于MC65,Microsoft API不能用于获取Orange密钥   状态。 Symbol.Keyboard.KeyPad类提供了一个新的   GetKeyStateEx()函数获取修饰符的当前状态   键即可。有关此API的说明,请参阅API函数页面。

它有这个代码示例:

// Get the key states
int keyState = keypad.GetKeyStateEx();

bool lockedState = false;

// Checking for a lock state first as it cannot be combined with others
switch (keyState)
{
    case KeyStates.KEYSTATE_ORANGE_SHIFT_LOCK:
        checkBoxOrangeShiftLock.Checked = true;
        lockedState = true;
        break;
    case KeyStates.KEYSTATE_FUNCTION_LOCK:
        checkBoxFuncLock.Checked = true;
        lockedState = true;
        break;
    case KeyStates.KEYSTATE_ORANGE_LOCK:
        checkBoxOrangeLock.Checked = true;
        lockedState = true;
        break;
    case KeyStates.KEYSTATE_NUMERIC_LOCK:
        checkBoxNumLock.Checked = true;
        lockedState = true;
        break;
    case KeyStates.KEYSTATE_SHIFT_LOCK:
        checkBoxShiftLock.Checked = true;
        lockedState = true;
        break;
    default:
        break;
}

if (lockedState)
{
    // No need to continue if a locked state
    this.Update();
    return;
}

// Process unlock or temp lock states if any
this.checkBoxUnShift.Checked = (keyState & KeyStates.KEYSTATE_UNSHIFT) != 0;
this.checkBoxShift.Checked = (keyState & KeyStates.KEYSTATE_SHIFT) != 0;
this.checkBoxCtrl.Checked  = (keyState & KeyStates.KEYSTATE_CTRL) != 0;
this.checkBoxAlt.Checked    = (keyState & KeyStates.KEYSTATE_ALT) != 0;
this.checkBoxNum.Checked = (keyState & KeyStates.KEYSTATE_NUMLOCK) != 0;
this.checkBoxCaps.Checked = (keyState & KeyStates.KEYSTATE_CAPSLOCK) != 0;
this.checkBoxFunc.Checked = (keyState & KeyStates.KEYSTATE_FUNC) != 0;
this.checkBoxOrangeTemp.Checked = (keyState & KeyStates.KEYSTATE_ORANGE_TEMP) != 0;

希望有所帮助!