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:
// 釋放物件所使用的資源。