2013-03-22 27 views
-2

我試圖做一個關閉計時器。意思是啓動一個給定時間的計時器,然後將計算機設置爲關閉。我搜索了因特網+ stackoverflow,我找不到任何有用的東西來同時使用我自己的關機事件並在屏幕上顯示它。給定事件的計時器

+0

你可以做一個.NET Forms Application。在頁面上放置一個計時器控件。在帶有標籤控制的頁面上顯示計數器,向下遞減計數。然後一旦完成。使用Shell調用關閉命令,或在內部使用WMI或Process.Start(「shutdown」,「/ s/t 0」); – ApolloSoftware 2013-03-22 20:04:01

+0

您希望*計算機*在應用程序計時器到期時關閉? re:你在下面的答案中的評論,一個計時器沒有屏幕上的存在。如果你想看到定時器倒計時,你需要爲它創建自己的顯示組件。編輯你的問題,並給我們更多關於你想要做的事情的信息。 – 2013-03-22 20:15:51

回答

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

:然後你就可以做如下。這樣你可以隨時禁用定時器。

+0

我不希望程序關閉後計時器處於活動狀態。我想自己管理定時器。我試過system.timers.timer,system.threading.timers和第三個。我無法讓它顯示在屏幕上。 – user1868569 2013-03-22 20:05:48