Hallo,
ich weis ein blöder Titel, und andere Bsp. gibt es mitlerweile auch genug

, aber
trozdem; noch ein kleines Beispiel.
Es soll als Anregung und zum weiteren Experimentieren dienen.
Augebaut ist es wie folgt:
Delphi-Quellcode:
TCustomWMIObject = class(TWMI_Object)
private
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
function GetItems(Index : Integer) : TVarEntry;
public
{ Public-Deklarationen }
function Execute : Boolean; virtual;
function ItemCount : Integer;
property Items[Index : Integer] : TVarEntry read GetItems;
published
{ Published-Deklarationen }
property Connection;
end;
TMainBoard = class(TCustomWMIObject)
private
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
procedure InitWMIObject; override;
public
{ Public-Deklarationen }
function Execute : Boolean; override;
published
{ Published-Deklarationen }
end;
TCustomWMIObject ist das 'Grundobjekt' von den alle weiteren 'abgeleitet' sind.
So beschränkt sich die Implementation neuer Componenten auf
InitWMIObject und
Execute,
wobei in
InitWMIObject nur die Namen der jeweiligen
Werte eingetragen werden müssen.
Bsp.
Delphi-Quellcode:
FVariableList.Add('Manufacturer', vtVariant);
BCS := FVariableList.Add('BiosCharacteristics', vtSet);
FVariableList.Add('BIOSVersion', vtObject, TStringList.Create);
FVariableList.Add('BuildNumber', vtVariant);
Die genaue Funktionsweise entnehmt bitte dem Code im Anhang.
Ihr seid also aufgerufen, das Beispiel sinnvoll zuverbessern, denn unterm Strich
habe wir alle etwas davon.
PS Ein gesundes neues Jahr, Euch allen.
Gruss
Alter Mann