获取GetLastInputInfo的名称设备

时间:2015-02-27 01:02:21

标签: c# input

我是一个新人,我的英语不是很好,我希望有人可以帮助我。

实际上,我使用LASTINPUTINFOGetLastInputInfo来取消系统的不活动状态,但是当我连接特定的耳机时,它会生成输入。

如何排除此设备?有没有办法获得生成最后一个输入的设备名称?

或其他任何解决方案?

这是我正在使用的代码:

[StructLayout(LayoutKind.Sequential)]
public struct LASTINPUTINFO
{
    public uint cbSize;
    public uint dwTime;
}
[DllImport("user32.dll")]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

public TimeSpan? GetInactiveTime()
{
    info = new LASTINPUTINFO();
    info.cbSize = (uint)Marshal.SizeOf(info);
    if (GetLastInputInfo(ref info))
        return TimeSpan.FromMilliseconds(Environment.TickCount - info.dwTime);
    else
        return null;
}

private void timer1_Tick(object sender, EventArgs e)
{
    tiempoInactivity = GetInactiveTime().ToString().Substring(0,8);
    label1.Text = "Inactividad: " + tiempoInactivity;
}

1 个答案:

答案 0 :(得分:0)

您可以使用Hardware Helper库禁用物理设备。它可能有所帮助。如果您可以提供代码段,那么可能会有所帮助。 有些信息可在http://www.codeproject.com/Articles/21503/Hardware-Helper-Library-for-C

处获得

已更新 - 您可以使用rawinputdevice来排除输入设备或将输入直接输入到后台应用程序