C# GetKeyboardState在远程桌面全屏模式下不工作

C# GetKeyboardState在远程桌面全屏模式下不工作,c#,.net,winapi,C#,.net,Winapi,我正在使用WinAPI跟踪整个系统中的所有键盘按键 这可以很好地工作,但是它在远程桌面上的行为很有趣 如果远程桌面处于windows模式,则可以正常工作;但是,如果远程桌面为全屏,则无法正常工作 有没有人有过这样的经验,或者没有在全屏远程桌面上按键的经验 感谢使用钩子,您将在任何其他程序之前收到keystate,甚至可以取消击键。 使用user32.DLL中的“setWindowshookxw”湿润一个钩子,使用“unhookwindowshookx”删除一个钩子。 有许多示例代码,请尝试这一个

我正在使用WinAPI跟踪整个系统中的所有键盘按键

这可以很好地工作,但是它在远程桌面上的行为很有趣

如果远程桌面处于windows模式,则可以正常工作;但是,如果远程桌面为全屏,则无法正常工作

有没有人有过这样的经验,或者没有在全屏远程桌面上按键的经验


感谢使用钩子,您将在任何其他程序之前收到keystate,甚至可以取消击键。 使用user32.DLL中的“setWindowshookxw”湿润一个钩子,使用“unhookwindowshookx”删除一个钩子。
有许多示例代码,请尝试这一个

请详细说明“它不起作用”的含义。请注意,
GetKeyboardState
只返回本地状态,而不返回全局状态,因此它不会跟踪整个系统中的键盘按键。我的意思是,看起来您无法使用键盘键从远程桌面全屏捕获键盘键。它可能绕过了它们,以前不应该起作用的
GetKeyboardState
无法从其他线程组捕获状态。(在没有附件游戏的情况下,一个线程组基本上是一个线程。)我在我的应用程序非代码项目中使用了类似的示例代码。我尝试了你的示例,但它对全屏远程桌面也不起作用。那么你就有问题了,因为你的全屏远程桌面可能正在使用功能“KeyboardHookProc”,取消所有按键。我会尝试使用GetAsyncKeyState,如果它不起作用,我就没有办法了。