闲置期后关闭表格

时间:2013-11-29 20:13:08

标签: c#

我有一个简单的应用程序,如果用户在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();
        }
    }
}

我该怎么办?请给我看一些样本。

1 个答案:

答案 0 :(得分:0)

我不太了解你的代码,但我看到的一件事是:

if (lg_st2.counter_time_logout == (IdleTime / 1000))

在你刚才说的那一刻:如果在10分钟内什么也没做,那就关闭吧。 (如果它是10分钟和1秒,它将无法工作) 但是,你想说的是:

if (lg_st2.counter_time_logout <= (IdleTime / 1000))

用这条线它应该工作。 对不起,如果没有。

问候 的Björn