-2

我正在尝试制作关机计时器。意思是启动给定时间的计时器,然后将计算机设置为关闭。我已经搜索了互联网 + stackoverflow 的原因,但我找不到任何有用的东西可以用来计时我自己的关闭事件并在屏幕上显示它。

4

1 回答 1

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;
    }

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

于 2013-03-22T20:00:35.380 回答