WPFでマウス、キーボードが入力されていない場合のロックを実現
1530 ワード
public static class HxTimer
{
static System.Windows.Threading.DispatcherTimer _LockSreenTimer = new System.Windows.Threading.DispatcherTimer();
public static System.Windows.Threading.DispatcherTimer LockSreenTimer
{
get { return _LockSreenTimer; }
set { _LockSreenTimer = value; }
}
/// <summary>
///
/// </summary>
public static int IdleMinute;
}
public class GetLastInputInfoHelp
{
[DllImport("user32.dll")]
internal static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
/// <summary>
///
/// </summary>
/// <returns> </returns>
public static int GetLastInputTime()
{
LASTINPUTINFO lastInputInfo = new LASTINPUTINFO();
lastInputInfo.cbSize = Marshal.SizeOf(lastInputInfo);
lastInputInfo.dwTime = 0;
int idleTime = 0;
if (GetLastInputInfo(ref lastInputInfo))
{
idleTime = Environment.TickCount - lastInputInfo.dwTime;
}
return ((idleTime > 0) ? (idleTime / 1000) : 0);
}
}
[StructLayout(LayoutKind.Sequential)]
internal struct LASTINPUTINFO
{
[MarshalAs(UnmanagedType.U4)]
public int cbSize;
[MarshalAs(UnmanagedType.U4)]
public int dwTime;
}