我有一个简单的应用程序,如果用户在10分钟内什么都不做,我想关闭它。 我尝试使用计时器和秒表,但我无法解决它。
[DllImport("user32.dll")]
public static extern Boolean GetLastInputInfo(ref tagLASTINPUTINFO plii);
public struct tagLASTINPUTINFO
{
public uint cbSize;
public Int32 dwTime;
}
private void counter_idle_time_step2_Tick(object sender, EventArgs e)
{
tagLASTINPUTINFO LastInput = new tagLASTINPUTINFO();
Int32 IdleTime;
LastInput.cbSize = (uint)Marshal.SizeOf(LastInput);
LastInput.dwTime = 0;
if (GetLastInputInfo(ref LastInput))
{
IdleTime = System.Environment.TickCount - LastInput.dwTime;
if (lg_st2.counter_time_logout == (IdleTime / 1000))
{
this.Close();
lg_st2.Show();
}
}
}
我该怎么办?请给我看一些样本。
答案 0 :(得分:0)
我不太了解你的代码,但我看到的一件事是:
if (lg_st2.counter_time_logout == (IdleTime / 1000))
在你刚才说的那一刻:如果在10分钟内什么也没做,那就关闭吧。 (如果它是10分钟和1秒,它将无法工作) 但是,你想说的是:
if (lg_st2.counter_time_logout <= (IdleTime / 1000))
用这条线它应该工作。 对不起,如果没有。
问候 的Björn