我是一个新人,我的英语不是很好,我希望有人可以帮助我。
实际上,我使用LASTINPUTINFO
和GetLastInputInfo
来取消系统的不活动状态,但是当我连接特定的耳机时,它会生成输入。
如何排除此设备?有没有办法获得生成最后一个输入的设备名称?
或其他任何解决方案?
这是我正在使用的代码:
[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;
}
答案 0 :(得分:0)
您可以使用Hardware Helper库禁用物理设备。它可能有所帮助。如果您可以提供代码段,那么可能会有所帮助。 有些信息可在http://www.codeproject.com/Articles/21503/Hardware-Helper-Library-for-C
处获得已更新 - 您可以使用rawinputdevice来排除输入设备或将输入直接输入到后台应用程序