在我的WPF应用程序中,我必须检测系统空闲时间(包括不使用鼠标,键盘,操纵杆)。
我使用GetLastInputInfo
来获取系统的空闲时间,但我发现它只适用于鼠标或键盘输入,但不适用于操纵杆。 p>
是否有方法或任何Win32 API可以通过检测来自所有三个设备(鼠标,键盘,操纵杆)的输入来提供LastInputInfo?
答案 0 :(得分:0)
您可以注册接收RAW输入消息。下面的示例询问操纵杆的原始输入,但如果您愿意,您也可以从鼠标和键盘请求原始输入...或者您可以坚持使用GetLastInputInfo来处理这些情况。
如果您希望在应用程序不在前台时接收事件,请在dwFlags上使用RIDEV_INPUTSINK。
下面的链接中应该有足够的内容来做你想做的事情......从每个参考文献中获取点点滴滴。
http://www.codeproject.com/Articles/185522/Using-the-Raw-Input-API-to-Process-Joystick-Input
http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard
http://msdn.microsoft.com/en-us/library/ms645600(v=vs.85).aspx
然后你需要定义一个回调来接收Windows消息,然后查找任何WM_INPUT。
我认为你不必使用系统挂钩,但是这里有一个链接提到: