[英]Does Windows 10 have a registry entry for LowLevelHooksTimeout
我正在尝试找到在Visual Studio 2015中调试C#时遇到的问题的解决方法。当应用程序进行调试时,当遇到断点时,它将导致鼠标光标严重滞后。 这是因为应用程序注册了鼠标和键盘的挂钩。 当遇到断点时,挂钩将等待输入,但是直到达到超时(〜5秒),它们才会收到输入。
因此,我在网上找到了一些解决方案,但是如果不重新设计钩子,就无法实现相对简单的解决方案。 我尝试为LowLevelHooksTimeout添加一个注册表项,以查看是否可以在遇到断点时使Windows更快地移至下一个钩子事件,但这似乎没有什么不同。
另外,使用原始输入可能是唯一的方法,但需要一些工作。 有没有人遇到这个问题,是否有偶然的解决方案。
我结束了这个开源代码: http : //www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard
它具有用C#实现的Raw Input API。 那里还有一个简单的WPF应用程序,它可以提供设备信息,以及在您按键时提供的信息(这就是给定链接的屏幕快照中的内容)。 我使用了基础代码并将其集成到我的应用程序中。 例如:
if (RawInputHandler == null)
{
RawInputHandler = RawInput.Instance;
RawInputHandler.LoggingEvent += RawInputHandler_LoggingEvent;
RawInputHandler.KeyPressed += RawInputHandler_KeyPressed;
RawInputHandler.MousePressed += RawInputHandler_MousePressed;
}
同时,在事物的原始输入端,每当我检测到管道中有相关事件时,便会调用这些事件。 有一种称为ProcessRawInput(Intpr)
的方法,可在其中区分鼠标,键盘等。这是通过检查API缓冲区头中的硬件类型来完成的:
if (_rawBuffer.header.dwType == DeviceType.RIM_TYPE_MOUSE)
{
// Do mouse stuff, invoke event
}
这很痛苦,但最终该API解决了使用鼠标/键盘挂钩的调试恐惧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.