【问题标题】:WPF app to find system idle time - GetLastInputInfo doesnot identify joystickWPF 应用程序查找系统空闲时间 - GetLastInputInfo 无法识别操纵杆
【发布时间】:2012-07-27 21:25:23
【问题描述】:

在我的 WPF 应用程序中,我必须检测系统空闲时间(包括不使用鼠标、键盘、操纵杆)。

我使用GetLastInputInfo获取系统的空闲时间,但我发现它仅适用于鼠标或键盘输入,而不适用于操纵杆。​​p>

有没有一种方法或任何 Win32 API 可以通过检测来自所有三种设备(鼠标、键盘、操纵杆)的输入来提供 LastInputInfo?

【问题讨论】:

  • GetLastInputInfo 已经是一个好的开始,但对于操纵杆,我很确定它没有包含在 winapi 中。或者即使是这样,它也可能无法容纳通过直接输入、xinput 和类似库获得的操纵杆。 win api 中紧密集成了键盘和鼠标,而操纵杆则没有。

标签: .net wpf windows


【解决方案1】:

您可以注册以接收 RAW 输入消息。下面的示例要求来自操纵杆的原始输入,但如果需要,您也可以要求来自鼠标和键盘的原始输入......或者您可以坚持使用 GetLastInputInfo 来处理这些情况。

如果您想在应用程序不在前台时接收事件,请在 dwFlags 上使用 RIDEV_INPUTSINK。

下面的链接中应该有足够的内容来做你想做的事......从每个参考资料中获取点点滴滴。

然后你需要定义一个回调来接收 Windows 消息,然后寻找任何 WM_INPUT 。

我认为您不必使用系统挂钩,但这里有一个链接提到:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多