喫茶XRAYトップページ

[スレッド全体
]

[4964] Windows Management Instrumentation返信 削除
2011/6/30 (木) 18:16:04 Syake
こんにちはマスター。
パクリなくりですが、こんなんどでしょうか?
Microsoft WMI Scripting V1.2 Library は不要です。

procedure XXXXX();

 function GetWMIObject(const objectName: String): IDispatch;
  var
    chEaten: Integer;
    BindCtx: IBindCtx;
    Moniker: IMoniker;
  begin
    OleCheck(CreateBindCtx(0, bindCtx));
    OleCheck(MkParseDisplayName(BindCtx, StringToOleStr(objectName), chEaten, Moniker));
    OleCheck(Moniker.BindToObject(BindCtx, nil, IDispatch, Result));
  end;

var
  ObjWMIService : OLEVariant;
  oleItemList   : OLEVariant;
  oleItems      : OLEVariant;
  oleItem       : OLEVariant;
  iEnumList     : IEnumVariant;
  iEnum         : IEnumvariant;
  nValue        : LongWord;
begin
  ObjWMIService := GetWMIObject('winmgmts:\\localhost\root\cimv2');
  oleItemList   := objWMIService.ExecQuery('SELECT * FROM Win32_OperatingSystem','WQL',0);
  iEnumList := IUnknown(oleItemList._NewEnum) as IEnumVariant;
  while iEnumList.Next(1, oleItems, nValue) = S_OK do
  begin
    iEnum := IUnknown(oleItems.Properties_._NewEnum) as IEnumVariant;
    while (iEnum.Next(1, oleItem, nValue) = S_OK) do
    begin
      if VarIsNull(oleItem) then Continue;
      {適当にデータ処理・・・}
    end;
  end;
end;

DelphiXE Windows7

[4967] Re:Windows Management Instrumentation返信 削除
2011/7/1 (金) 00:50:45 Mr.XRAY
▼ Syakeさん

ただいま地球に帰還しました.

> Microsoft WMI Scripting V1.2 Library は不要です。

パクリと言われても分かりませんが,これって,へぇー
>     BindCtx: IBindCtx;
>     Moniker: IMoniker;


こんなインターフェイスがあったんですね.Library不要がいいですね.
これはお蔵入りじゃない,サンプルプログラム集入りかな?
ありがとうございます.
宇宙は広い.デスラー総統にも報告しないと.

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82