首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 摘引 wmi 成员(方法)

2013-01-12 
delphi 引用 wmi 成员(方法)例如root\CIMV2里Select * From Win32_OperatingSystem里的方法ShutDown如何引

delphi 引用 wmi 成员(方法)
例如  root\CIMV2   里  Select * From Win32_OperatingSystem   里的方法  ShutDown   


如何引用。
[解决办法]
错了
using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class CallWMIMethod
    {
        public static void Main()
        {
            try
            {
                ManagementObject classInstance = 
                    new ManagementObject("root\\CIMV2", 
                    "Win32_OperatingSystem.ReplaceKeyPropery='ReplaceKeyPropertyValue'",
                    null);

                // no method in-parameters to define


                // Execute the method and obtain the return values.
                ManagementBaseObject outParams = 
                    classInstance.InvokeMethod("Shutdown", null, null);

                // List outParams
                Console.WriteLine("Out parameters:");
                Console.WriteLine("ReturnValue: " + outParams["ReturnValue"]);
            }
            catch(ManagementException err)
            {
                MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
            }
        }
    }
}
[解决办法]

 function GetPNPDeviceID():AnsiString;
  var
    Locator: OleVariant;
    WMI: OleVariant;
    RET: OleVariant;
    Enum: IEnumVariant;
    Tmp: OleVariant;
    Value: Cardinal;
  begin
    result:='';
    Locator := CreateOleObject('WbemScripting.SWbemLocator');


    WMI := Locator.ConnectServer('.', '', '', '');
    Ret := WMI.ExecQuery('SELECT * FROM Win32_USBHub');//这里Win32_USBHub为检测项,详见下表
    Enum:= IUnknown(RET._NewEnum) as IEnumVariant;
    while (Enum.Next(1, Tmp, Value) = S_OK) do
    begin
      if Tmp.Name='USB Mass Storage Device' then
      begin
         //ShowMessage('这个u盘的硬件特征码是'+Tmp.PNPDeviceID);//Tmp为检测到返回的数据集合,其中PNPDeviceID为集合中的对象,包含了PID和VID码
         result:=result+Tmp.PNPDeviceID;
      end;
    end;
  end;                          

热点排行