天天看点

C#实现关机、重启

本程序用到的控件只有三个按钮,分别为:重启,关机,退出。

打开右边的“解决方案资源管理器”--展开树结构--引用--添加引用---在弹出的对话框中找到System.Management---双击添加它---确定,即建成对System.Management.dll的引用。然后在程序的开头再写入

using System.Management;

using System.Runtime.InteropServices; //加入此名字间是为了引用Windows API来实现关机

程序如下:

-------------------

C#实现关机、重启

using  System; 

C#实现关机、重启

using  System.Drawing; 

C#实现关机、重启

using  System.Collections; 

C#实现关机、重启

using  System.ComponentModel; 

C#实现关机、重启

using  System.Windows.Forms; 

C#实现关机、重启

using  System.Data; 

C#实现关机、重启

using  System.Management; 

C#实现关机、重启

using  System.Runtime.InteropServices;  // 加入此名字间是为了引用Windows API来实现关机 

C#实现关机、重启
C#实现关机、重启

namespace  RebootComputer 

C#实现关机、重启
C#实现关机、重启

... { 

C#实现关机、重启
C#实现关机、重启

public class Form1 : System.Windows.Forms.Form 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

//---------------这部分都是控件-------- 

C#实现关机、重启

private System.Windows.Forms.Button Reboot; 

C#实现关机、重启

private System.Windows.Forms.Button ShutDown; 

C#实现关机、重启

private System.ComponentModel.Container components = null; 

C#实现关机、重启

private System.Windows.Forms.Button Exit; 

C#实现关机、重启

//--------------------------------------------------------- 

C#实现关机、重启

private ManagementObjectSearcher obj ;//关于这个类,请看上次的简简单单获取系统资源信息(共享、硬盘、网卡等)http://itbbs.pconline.com.cn/traditional/article.jsp?topic=1540826 

C#实现关机、重启

//-----------------程序初始化---------------- 

C#实现关机、重启
C#实现关机、重启

public Form1() 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

InitializeComponent(); 

C#实现关机、重启

C#实现关机、重启

//-----------------------程序释放---------------------- 

C#实现关机、重启

protected override void Dispose( bool disposing ) 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

if( disposing ) 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

if (components != null) 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

components.Dispose(); 

C#实现关机、重启

C#实现关机、重启

C#实现关机、重启

base.Dispose( disposing ); 

C#实现关机、重启

C#实现关机、重启
C#实现关机、重启

//-------------------------初始化---------------------- 

C#实现关机、重启

private void InitializeComponent() 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

this.Reboot = new System.Windows.Forms.Button(); 

C#实现关机、重启

this.ShutDown = new System.Windows.Forms.Button(); 

C#实现关机、重启

this.Exit = new System.Windows.Forms.Button(); 

C#实现关机、重启

this.SuspendLayout(); 

C#实现关机、重启

// 

C#实现关机、重启

// Reboot 

C#实现关机、重启

// 

C#实现关机、重启

this.Reboot.Location = new System.Drawing.Point(16, 16); 

C#实现关机、重启

this.Reboot.Name = "Reboot"; 

C#实现关机、重启

this.Reboot.TabIndex = 0; 

C#实现关机、重启

this.Reboot.Text = "重启"; 

C#实现关机、重启

this.Reboot.Click += new System.EventHandler(this.Reboot_Click); 

C#实现关机、重启

// 

C#实现关机、重启

// ShutDown 

C#实现关机、重启

// 

C#实现关机、重启

this.ShutDown.Location = new System.Drawing.Point(112, 16); 

C#实现关机、重启

this.ShutDown.Name = "ShutDown"; 

C#实现关机、重启

this.ShutDown.TabIndex = 1; 

C#实现关机、重启

this.ShutDown.Text = "关机"; 

C#实现关机、重启

this.ShutDown.Click += new System.EventHandler(this.ShutDown_Click); 

C#实现关机、重启

// 

C#实现关机、重启

// Exit 

C#实现关机、重启

// 

C#实现关机、重启

this.Exit.Location = new System.Drawing.Point(216, 16); 

C#实现关机、重启

this.Exit.Name = "Exit"; 

C#实现关机、重启

this.Exit.TabIndex = 2; 

C#实现关机、重启

this.Exit.Text = "退出"; 

C#实现关机、重启

this.Exit.Click += new System.EventHandler(this.Exit_Click); 

C#实现关机、重启

// 

C#实现关机、重启

// Form1 

C#实现关机、重启

// 

C#实现关机、重启

this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); 

C#实现关机、重启

this.ClientSize = new System.Drawing.Size(304, 53); 

C#实现关机、重启

this.Controls.Add(this.Exit); 

C#实现关机、重启

this.Controls.Add(this.ShutDown); 

C#实现关机、重启

this.Controls.Add(this.Reboot); 

C#实现关机、重启

this.Name = "Form1"; 

C#实现关机、重启

this.Text = "重启、关机"; 

C#实现关机、重启

this.ResumeLayout(false); 

C#实现关机、重启
C#实现关机、重启

C#实现关机、重启

//-----------------主函数,没有此函数可运行不了哦---------- 

C#实现关机、重启

[STAThread] 

C#实现关机、重启

static void Main() 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

Application.Run(new Form1()); 

C#实现关机、重启

C#实现关机、重启

//--------------------重启部分程序,主要还是利用上次的简简单单获取系统资源信息(共享、硬盘、网卡等)---------------- 

C#实现关机、重启

private void Reboot_Click(object sender, System.EventArgs e) 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启
C#实现关机、重启

obj = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem"); 

C#实现关机、重启

foreach(ManagementObject oc in obj.Get()) 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

DialogResult result = MessageBox.Show("Are you sure want to reboot?","Confirm",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);//这里为确定用户是否点击“确定”按钮 

C#实现关机、重启

if(DialogResult.OK == result) 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

oc.InvokeMethod("Reboot",null);//点击“确定”按钮后就调用此方法重启机器 

C#实现关机、重启

C#实现关机、重启
C#实现关机、重启

C#实现关机、重启

C#实现关机、重启

//---------------关机部分程序------------------------ 

C#实现关机、重启

private void ShutDown_Click(object sender, System.EventArgs e) 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启
C#实现关机、重启

if(DialogResult.OK == MessageBox.Show("Are you sure want to Shut Down?","Confirm",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)) //同上 

C#实现关机、重启
C#实现关机、重启

...{//主要调用系统API来实现 

C#实现关机、重启

ExitWindowsEx(1,0); 

C#实现关机、重启

C#实现关机、重启

C#实现关机、重启

//这里的[DllImport("user32.dll")]是.net里属性的表达方法,DllImport为引用系统API所在的库"user32.dll" 

C#实现关机、重启
C#实现关机、重启

[DllImport("user32.dll")] 

C#实现关机、重启

//主要API是这个,注意:必须声明为static extern 

C#实现关机、重启

private static extern int ExitWindowsEx(int x,int y); 

C#实现关机、重启
C#实现关机、重启

//这个是退出按钮的实现,即实现程序的退出 

C#实现关机、重启

private void Exit_Click(object sender, System.EventArgs e) 

C#实现关机、重启
C#实现关机、重启

...{ 

C#实现关机、重启

Application.Exit(); 

C#实现关机、重启

C#实现关机、重启

C#实现关机、重启

}

C#实现关机、重启

继续阅读