程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#編寫自動關機程序復習的知識

C#編寫自動關機程序復習的知識

編輯:C#入門知識

C#編寫自動關機程序復習的知識



首先一個程序第一要素是logo   在設置裡面可以設置程序圖標,在ICON裡設置。   ICON圖標可以在網上下載。   這些都是表面功夫   程序中涉及到Buton、Label、Timer、Notiflcon控件   Button按鈕控件,可以設計點擊事件   如下所示:    
private void timer1_Tick(object sender, EventArgs e)
        {
            Int32 time_now;
            Int32 extra;
            if (Flag_True == 1)
            {
                if (DateTime.Now.Minute == fen && DateTime.Now.Hour == shi && DateTime.Now.Second == miao)
                {
                    button1.Text = "取消";
                    label6.Text = "剩余關機時間";
                    label7.Text = "秒";
                    label5.Text = "0";
                    System.Diagnostics.Process.Start("shutdown","-s -t 0");//關機程序
                }//shutdown
                else
                {
                    time_now = DateTime.Now.Second + DateTime.Now.Minute * 60 + DateTime.Now.Hour * 3600;
                    extra = time_set - time_now;
                    if (extra > 0)
                    {
                        button1.Text = "取消";
                        label6.Text = "剩余關機時間";
                        label7.Text = "秒";
                        //extra/3600
                        label5.Text = extra.ToString();
                    }
                    else
                    {
                        Flag_True = 0;
                    }
                         
                     
                }
            }
        }

 

x  label控件操作簡單   能夠顯示字符,並且其成員有text,可以隨時更改文本   timer控件相當於嵌入式中的定時器,在屬性中行為一欄中設置ENABLE 並且設置interval時間間隔500就是半秒。  
private void timer1_Tick(object sender, EventArgs e)
        {
            Int32 time_now;
            Int32 extra;
            if (Flag_True == 1)
            {
                if (DateTime.Now.Minute == fen && DateTime.Now.Hour == shi && DateTime.Now.Second == miao)
                {
                    button1.Text = "取消";
                    label6.Text = "剩余關機時間";
                    label7.Text = "秒";
                    label5.Text = "0";
                    System.Diagnostics.Process.Start("shutdown","-s -t 0");//關機程序
                }//shutdown
                else
                {
                    time_now = DateTime.Now.Second + DateTime.Now.Minute * 60 + DateTime.Now.Hour * 3600;
                    extra = time_set - time_now;
                    if (extra > 0)
                    {
                        button1.Text = "取消";
                        label6.Text = "剩余關機時間";
                        label7.Text = "秒";
                        //extra/3600
                        label5.Text = extra.ToString();
                    }
                    else
                    {
                        Flag_True = 0;
                    }
                         
                     
                }
            }
        }

 

   上面我每隔半秒進入中斷一次,判斷,如果已經設置過定時關機,就判斷是否到達關機時間,並顯示還剩多少秒關機。如果沒有設置定時關機,就不顯示。   其中button1和Label的text都可以隨時更改。   基本功能設置完成   接下來還有一個最小化到托盤的設置   用到Notiflcon控件   此控件設置最小化圖標,在設置裡可以設置icon圖標。   他帶有的事件有鼠標單擊,鼠標雙擊,單擊,雙擊。    
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            this.Visible = true;
            this.WindowState = FormWindowState.Normal;
            this.notifyIcon1.Visible = false;
        }

 

 上述我設置了鼠標單擊,代碼裡是恢復可視化,正常窗口。   再之得設置程序最小化時隱藏在下邊    
private void Form1_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.Hide();
                this.notifyIcon1.Visible = true;
            }
        }

 

 上述就是一個關機程序,自己做著玩的。。   整體構架如下圖所示。    
namespace 關機任務管理V1._0
{
    public partial class Form1 : Form
    {
        int shi, fen, miao;
        Int32 time_set;
        int Flag_True = 0;
        public Form1()
        {
             
            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
             
        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            if (numericUpDown1.Value == -1)
                numericUpDown1.Value = 60;
            else if (numericUpDown1.Value == 61)
                numericUpDown1.Value = 0;
        }

        private void numericUpDown2_ValueChanged(object sender, EventArgs e)
        {
            if (numericUpDown2.Value == -1)
                numericUpDown2.Value = 60;
            else if (numericUpDown2.Value == 61)
                numericUpDown2.Value = 0;
         
        }

        private void numericUpDown3_ValueChanged(object sender, EventArgs e)
        {
            if (numericUpDown3.Value == 25)
                numericUpDown3.Value = 0;
            else if (numericUpDown3.Value == -1)
                numericUpDown3.Value = 24;
        }

        private void button1_Click(object sender, EventArgs e)
        {
           // int shi, fen, miao;
            if (Flag_True == 0)
            {
                Flag_True = 1;
            }
            else
            {
                button1.Text = "確定";
                label6.Text = " ";
                label7.Text = " ";
                label5.Text = " ";
                //label1.Text = "定時關機設置";
                Flag_True = 0;
            }
            shi = (int)numericUpDown3.Value;
            fen = (int)numericUpDown2.Value;
            miao = (int)numericUpDown1.Value;
            time_set = shi * 3600 + fen * 60 + miao;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Int32 time_now;
            Int32 extra;
            if (Flag_True == 1)
            {
                if (DateTime.Now.Minute == fen && DateTime.Now.Hour == shi && DateTime.Now.Second == miao)
                {
                    button1.Text = "取消";
                    label6.Text = "剩余關機時間";
                    label7.Text = "秒";
                    label5.Text = "0";
                    System.Diagnostics.Process.Start("shutdown","-s -t 0");//關機程序
                }//shutdown
                else
                {
                    time_now = DateTime.Now.Second + DateTime.Now.Minute * 60 + DateTime.Now.Hour * 3600;
                    extra = time_set - time_now;
                    if (extra > 0)
                    {
                        button1.Text = "取消";
                        label6.Text = "剩余關機時間";
                        label7.Text = "秒";
                        //extra/3600
                        label5.Text = extra.ToString();
                    }
                    else
                    {
                        Flag_True = 0;
                    }
                         
                     
                }
            }
        }

        private void label5_Click(object sender, EventArgs e)
        {

        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void label6_Click(object sender, EventArgs e)
        {

        }

        private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            this.Visible = true;
            this.WindowState = FormWindowState.Normal;
            this.notifyIcon1.Visible = false;
        }
        //最小化代碼
        private void Form1_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.Hide();
                this.notifyIcon1.Visible = true;
            }
        }

 

      }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved