public Form1()
{
InitializeComponent();
}
#region 當一段時間無操作時,自動執行返回初始界面
[StructLayout(LayoutKind.Sequential)]
struct LASTINPUTINFO
{
[MarshalAs(UnmanagedType.U4)]
public int cbSize;
[MarshalAs(UnmanagedType.U4)]
public uint dwTime;
}
[DllImport("user32.dll")]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
static long GetLastInputTime()
{
LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
if (!GetLastInputInfo(ref vLastInputInfo))
return 0;
return Environment.TickCount - (long)vLastInputInfo.dwTime;
}
#endregion
//加載事件
private void Form1_Load(object sender, EventArgs e)
{
this.timer1.Start();
}
//時間控制
private void timer1_Tick(object sender, EventArgs e)
{
if (GetLastInputTime() / 1000 == 10) //10s
{
label1.Text = "屏保";
}
else
label1.Text = (GetLastInputTime() / 1000).ToString();
}
}