C# 透過 WMI 控制電腦重新開機

C# 透過 WMI 控制電腦重新開機

C# 透過 WMI 控制 電腦 重新開機

控制電腦重新啟動開機的方式有許多種 , 底下介紹 WMI 方式給大家參考

請先加入參考 System.Management

using System.Management; // System.Management 命名空間

namespace sln_Reboot

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

ManagementClass mc = new ManagementClass("Win32_OperatingSystem"); // 註1

mc.Scope.Options.EnablePrivileges = true; // 註2

foreach (ManagementObject mo in mc.GetInstances()) // 註3

{

mo.InvokeMethod("Reboot", null, null); // 註4

}

mc.Dispose(); // 註5

}

}

}

// 註1:

// ManagementClass 類別 : 表示通用訊息模型 (CIM) 管理類別, 管理類別是指WMI 類別。

// 註2:

// ConnectionOptions.EnablePrivileges 屬性 : 指出是否需要為連接作業啟用使用者權限。

// 如果需要為連接作業啟用使用者權限,應為 true,否則為 false。預設值為 false。

// 執行的作業需要啟用某些使用者權限時 (如,電腦重新開機) 應該使用這個屬性。

// 註3:

// 使用Foreach 陳述式存取集合類別中物件(元素)

// ManagementClass.GetInstances 方法 : 傳回類別所有執行個體的集合。

// 註4:

// InvokeMethod 方法 : 在物件上叫用方法。

// 呼叫電腦重新開機 (啟動)

// 註5:

// 釋放物件所使用的資源。