我想关闭磁盘 (WMI)。到目前为止,我有以下代码:
ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\cimv2");
ObjectQuery query = new ObjectQuery("SELECT * FROM CIM_DiskDrive");
//create object searcher
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
//enumerate the collection.
foreach (ManagementObject m in queryCollection)
{
Console.WriteLine("in set power state for: " + m.Path);
ManagementOperationObserver obs = new ManagementOperationObserver();
obs.Progress += new ProgressEventHandler(obs_Progress);
obs.Completed += new CompletedEventHandler(obs_Completed);
m.InvokeMethod(obs, "SetPowerState", new object[]{"7"});
}
但是,磁盘事件不断发生。任何关于正在发生的事情的想法都将不胜感激。
最佳答案
SetPowerState 不是由 WMI 实现的:
http://msdn.microsoft.com/en-us/library/aa387254(v=VS.85).aspx
检查 CompletedEventArgs.Status 也会返回 MethodNotImplemented 告诉我们情况就是这样。如果您想使用该方法,则必须实现您自己的提供程序。
关于c# - WMI 关闭磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398179/