计时器到给定的事件

时间:2013-03-22 19:50:01

标签: c#

我正在尝试制作关机计时器。意味着启动给定时间的计时器,并在此之后将计算机设置为关闭。我搜索了因特网+ stackoverflow的原因,我找不到任何有用的东西来同时使用我自己的关机事件并在屏幕上显示它。

1 个答案:

答案 0 :(得分:0)

你有什么尝试?

如果您希望计划在程序结束时保持活动状态,我建议您使用任务计划器。您可以定义执行时间,将其设置为仅执行一次并在之后删除。 (http://www.thewindowsclub.com/schedule-shutdown-restarts-windows-7-task-schedular

否则,您可以在应用程序中创建一个计时器并将适当的事件绑定到它。

您需要两者的管理员权限。


要显示时间,您需要在表单上显示一些内容。例如标签。然后你可以这样做:

    private void button1_Click(object sender, EventArgs e)
    {
        var x = new Timer();
        x.Tick += new EventHandler((obj, eventargs) => {
            var t = obj as Timer;
            var tag = (int)t.Tag;

            label1.Text = string.Format("{0:0.0}s until shutdown", tag/10d);
            t.Tag = tag - 1;

            if (tag == 0)
            {
                t.Enabled = false;
                MessageBox.Show("I shall initiate the shutdown here!", "Brace yourself!");
                Process.Start("shutdown", "/s /t 10"); // Do the actual shutdown here
            }

        });
        x.Interval = 100;
        x.Tag = 30;
        x.Enabled = true;
    }

如果要中止倒计时,则需要将局部变量提升为表单的私有字段。这样你就可以随时禁用计时器。