Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WLAN-Signalstärke auslesen (https://www.delphipraxis.net/172854-wlan-signalstaerke-auslesen.html)

loirad 25. Jan 2013 15:17

WLAN-Signalstärke auslesen
 
Hallo liebe Community,

ich habe eine Frage (wie sollte es auch anders sein :lol:): Wie kann ich die Signalstärken der verfügbaren WLAN-Hotspots (mit zugehöriger MAC-Adresse) mit Delphi auslesen. Die Beiträge, die ich gefunden habe erschließen sich mir nicht komplett bzw. beinhalten inaktive Links, da die Beiträge schon einige Jährchen exsistieren.

Liebe Grüße
loirad

Klaus01 25. Jan 2013 15:31

AW: HTML-Signalstärke auslesen
 
OT:

Warum ist die Überschrift dann HTML-Signalstärke auslesen und nicht WLAN Signalstärke auslesen?

Grüße
Klaus

Bummi 25. Jan 2013 19:41

AW: HTML-Signalstärke auslesen
 
Liste der Anhänge anzeigen (Anzahl: 2)
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.

loirad 25. Jan 2013 20:15

AW: WLAN-Signalstärke auslesen
 
Zitat:

Warum ist die Überschrift dann HTML-Signalstärke auslesen und nicht WLAN Signalstärke auslesen?
Oh entschuldigung - Fehler meinerseits. Wie zum Teufel bin ich auf HTML gekommen? Ich meinte jedenfalls WLAN-Signalstärke auslesen!

Zitat:

Delphi-Quellcode:
Vielen Dank, werde ich bei Gelegenheit ausprobieren!

Edit: Ich kann den Eintrag "Select * from WiFi_AdapterCachedScanList" im Drop-Down Menü nicht finden?
Edit²: Ich bekomme eine Fehlermeldung, das die WBEMScripting_TLB.dcu nicht existiert. Wo finde ich die?

Zitat:

eine etwas hübschere Version gebe ich nur ohne Source ab.
Ist ok und kann ich auch voll verstehen!

Bummi 25. Jan 2013 21:36

AW: WLAN-Signalstärke auslesen
 
ich weiß nicht wo es bei D6 versteckt ist, ich finde es unter:

Komponente importieren
Typbibliothek importieren
Microsoft WMI Scripting V1.2 Library

Du kannst in der Combobox auch eigene "SQL's" eingeben, die Auswahl ist mehr als Hilfe zu sehen.

loirad 25. Jan 2013 22:00

AW: WLAN-Signalstärke auslesen
 
Zitat:

ich weiß nicht wo es bei D6 versteckt ist
Es ist unter Projekt - Typbibliothek importieren (siehe http://www.delphipraxis.net/95849-mi...2-library.html)

Ich werde es am Wochenende weiter ausprobieren und mich bei Fragen melden. Vielen Dank schonmal dafür!

loirad 26. Jan 2013 13:09

AW: WLAN-Signalstärke auslesen
 
Der Quelltext funktioniert ohne Probleme. Jedoch functioniert die Anfrage "SELECT * FROM WiFi_AdapterCachedScanList" werder bei dem Quelltext, noch mit der exe. Woran kann das liegen? Es wird einfach nichts ausgegeben - sl bleibt leer.

Garfield 26. Jan 2013 20:02

AW: WLAN-Signalstärke auslesen
 
Warum WMI und nicht Native WiFi API?

http://www.delphibasics.info/home/de...ts/wifiscanner


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz