Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: HTML-Signalstärke auslesen
25. Jan 2013, 20:41
Delphi-Quellcode:
program WMI_SQL;
{$APPTYPE CONSOLE}
uses
SysUtils,
WBEMScripting_TLB,
ActiveX,
Variants,
Classes;
Procedure GetWMIstring( Const wmiHost, root, Query: string;sl:TStrings);
// 2012 by Thomas Wassermann (bummi)
var
Services: ISWbemServices;
SObject: ISWbemObject;
ObjSet: ISWbemObjectSet;
Enum: IEnumVariant;
Value: Cardinal;
TempObj: OLEVariant;
loc: TSWbemLocator;
begin
if Assigned(sl) then
try
loc := TSWbemLocator.Create( nil);
Services := Loc.ConnectServer(wmiHost, root , ' ', ' ', ' ', ' ', 0, nil);
ObjSet := Services.ExecQuery( Query, ' WQL',wbemFlagForwardOnly or wbemFlagReturnWhenComplete, nil);
Enum := (ObjSet._NewEnum) as IEnumVariant;
if not VarIsNull(Enum) then
try
while Enum.Next(1, TempObj, Value) = S_OK do
begin
try
SObject := IUnknown(TempObj) as ISWBemObject;
except SObject := nil;
end;
if Assigned(SObject) then SL.add( Sobject.GetObjectText_(0));
end;
except
end;
Enum := nil;
Services := nil;
ObjSet := nil;
except
end;
end;
var
sl:TStringList;
begin
try
sl:=TStringList.Create;
// GetWMIstring('.', 'root\CIMV2', 'SELECT * FROM WiFi_AdapterAssociationInfo',sl) ;
// GetWMIstring('.', 'root\CIMV2', 'SELECT * FROM WiFi_AdapterAssocStats',sl) ;
// GetWMIstring('.', 'root\CIMV2', 'SELECT * FROM WiFi_AdapterSignalParameters',sl) ;
GetWMIstring(' .', ' root\CIMV2', ' SELECT * FROM WiFi_AdapterCachedScanList',sl) ;
WriteLn(sl.Text);
readln;
except
on E: Exception do
Writeln(E.ClassName, ' : ', E. Message);
end;
end.
eine etwas hübschere Version gebe ich nur ohne Source ab.
BTW: es gibt Abfragen die sehr lange dauern und auch einige die für eine Abfrage hiermit nicht geeignet sind, da ein Abbruchkriterium fehlt.
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
Geändert von Bummi (25. Jan 2013 um 20:55 Uhr)
|