WMI を使用して、コンピューターにインストールされているソフトウェアの一覧を取得する関数をコーディングしました。
begin
Result:='';
FWbemObjectSet:= FWMIService.ExecQuery(Format('Select %s from %s',[WMIProperty, WMIClass]),'WQL',wbemFlagForwardOnly);
oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
while oEnum.Next(1, FWbemObject, iValue) = 0 do
begin
if not VarIsNull(FWbemObject.Properties_.Item(WMIProperty).Value) then
Result:=FWbemObject.Properties_.Item(WMIProperty).Value;
ClientForm.TreeView1.Items.AddChild(Node, Format('%s',[String(FWbemObject.Name)]));
FWbemObject:=Unassigned;
end;
end;
この関数は、次のコードによって FormCreate で実行されます。
GETWMIstringSW('Win32_Product','Name');
私が持っている質問は、ImageIndex と StateIndex を変更するにはどうすればよいですか? このようなバージョンも取得するために、関数に別のコード行を追加したいと思います。
(Format('Version %s',[String(FWbemObject.Version)]));
しかし、私は立ち往生しています。皆さん、私を正しい方向に向けてもらえますか? どうもありがとう。