0

非常に単純なプロジェクト、Win7、VS2012、Winforms。

スクリーンセーバーが作動する 1 分前に警告ウィンドウをポップアップして、ユーザーがまもなくロックアウトされることを通知します。

ただし、以下のコードを使用してウィンドウをポップするたびに、スクリーンセーバーのタイムアウトがリセットされ、1 分が . 私は user32.dll を読んでいます "static extern bool GetLastInputInfo(ref LASTINPUTINFO pii);" そして、そこにある時間は最後にマウスを動かした時間を反映しているので、0 分では に等しくなります。

タスクバーに通知アイコンがあるフォームがあります。読み込み時に this.Hide() と notifyIcon1.Visible = true を呼び出します。1 分が経過したら、タイマーをリセットする次のいずれかを実行します。

void Maximize()
{
    this.TopMost = false;
    this.Show();
    this.TopMost = true;
}

また

void Maximize()
{
    this.TopMost = false;
    this.Show();
    this.WindowState = FormWindowState.Normal;
    this.TopMost = true;
    this.Activate();
    this.Focus();
}

どう思いますか、Windows のバグですか?

4

0 に答える 0