GetKeyState函数不适用于CAPITAL键代码

时间:2015-08-11 21:21:48

标签: c# wpf winapi

我正在使用我的WPF应用程序并使用第三方屏幕键盘。实际上,我正在从我的家用电脑(在Win10下)开发通过RDP在Intel NUC(在Win7下)开发机器并且遇到GetKeyState功能的问题。 函数总是返回我的开发者电脑没有按下CAPITAL,虽然它确实打开和关闭。我尝试使用有线/无线键盘,通过RDP或不通过RDP。 同时,相同的代码在我的家用电脑上运行良好,GetKeyState函数返回真正的CAPS LOCK键状态。

代码是

public static bool IsTogglingKeyInEffect(VirtualKeyCode keyCode)
{
    Int16 result = GetKeyState((UInt16)keyCode);
    return (result & 0x01) == 0x01;
}

请帮忙提出建议,我不知道是什么事。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下代码来检查大写锁定是否已启用

 if(Console.CapsLock)
        {
           //do something
        }