掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Vistaで適応済更新プログラムを一覧取得するには? (ID:33319)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
真琴:「ハルコさん、イチイチWin32_QuickFixEngineeringクラスのプロパティ名を指定してその値を取得するのは面倒よね? 全部まとめて取得できないの?」 春子:「だったら、プロパティ名も列挙すればイイんじゃない?」 真琴:「え? プロパティ名も列挙? どうやるの?」 春子:「こうかな?」 procedure TForm1.Button1Click(Sender: TObject); function VarToString(const OV: OleVariant): string; var LB, HB, i: Integer; begin if VarIsArray(OV) then begin Result := '['; LB := VarArrayLowBound(OV, 1); HB := VarArrayHighBound(OV, 1); for i := LB to HB do begin result := Result + VarToString(OV[i]); if i <> HB then Result := Result + ','; end; Result := Result + ']'; end else begin Result := VarToStr(OV); end; end; var Locator: ISWbemLocator; Services: ISWbemServices; ISWOSet: ISWbemObjectSet; Enum1, Enum2: IEnumVariant; ORow, OCol: OleVariant; i, j: Integer; Value: Integer; begin Locator := CoSWbemLocator.Create as ISWbemLocator; Services := Locator.ConnectServer('.', '', '', '', '', '', 0, nil); ISWOSet := Services.ExecQuery('Select * From Win32_QuickFixEngineering', 'WQL', WbemFlagReturnImmediately, nil); Enum1 := ISWOSet._NewEnum as IEnumVariant; ListBox1.Clear; for i := 1 to ISWOSet.Count do begin Enum1.Next(1, ORow, @Value); if Value <= 0 then Break; if VarIsNull(ORow) then Continue; Enum2 := IUnknown(ORow.Properties_._NewEnum) as IEnumVariant; for j := 1 to ORow.Properties_.Count do begin Enum2.Next(1, OCol, @Value); if Value <= 0 then Break; if VarIsNull(OCol) then Continue; ListBox1.Items.Add(Format('%s=%s', [VarToStr(OCol.Name), VarToString(OCol.Value)])); end; ListBox1.Items.Add(''); end; end; 真琴:「あれ? このコードでは、Enum.Next()の3番目の引数がポインタになってるけど?」 春子:「Delphiのバージョンが古いと、ポインタでなくちゃダメなのよ」 春子:「あ、そうなの…、それにしても XPなんかで、全部一度に列挙するとスゴイ数よね^^;」 春子:「それだけセキュリティホールが多かったってコト」 真琴:「だけど、こんなに多いと、特定のパッチがあたってるかを調べるのも面倒…」 春子:「それなら、特定のパッチとか、特定のサービスパックだけとかも指定できるよ、マコト」 真琴:「ホント? じゃぁ、それも教えて?」 春子:「たとえば、特定のパッチKB938127だけとか、SP2だけとかなら、QUERY文字列は…」 Select * From Win32_QuickFixEngineering where HotFixID="KB938127" Select * From Win32_QuickFixEngineering where ServicePackInEffect="SP2" 真琴:「ふ〜ん、これって、データベースのQUERYそっくりじゃない?」 春子:「そう、データベースに慣れてる人はラクかな?」 真琴:「ハルコさん、昨日はスゴク寒かったのに、今日はポカポカ暖かくて、ナンか春になったみたい」 春子:「うん、そうだネ、もう春はすぐそこ」 真琴:「"春来りなば夏遠からじ"よね? ハルコさん」 春子:「え?それ違うでしょ? マコト、"冬来りなば春遠からじ"よ、Shelleyの詩の言葉は…」 真琴:「イイのイイの、これはアタ"詩"の言葉だから^^;」
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.