Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WLAN API Problem mit getProfile (https://www.delphipraxis.net/116020-wlan-api-problem-mit-getprofile.html)

madLucy 21. Jun 2008 22:54


WLAN API Problem mit getProfile
 
Hallo zusammen,

Ich würde gerne über die Microsoft Native WIFI API mein Lokales WLAN Profil auslesen und speichern, so
dass ich es ohne großen Aufwand auf anderen Rechnern einfach importieren kann.

Dank der großartigen Übersetzung der C HeaderDatei von Nitschedu klappen so sachen wie das Auslesen
der WLAN Adapter und der dazugehörigen Profilnamen wunderbar.. allerdings wenn ich die funktion

WlanGetProfile aufrufe wird mir dort nie das Profil zurückgegeben. Mein bisheriger Code sieht so aus:

Delphi-Quellcode:
  var
   hHandle  : THandle;
   return   : DWORD;
   dwVersion : DWORD;
  begin
   return := WLANOpenHandle(1, nil, @dwVersion, @hHandle);
   return := WlanEnumInterfaces(hHandle, nil, @pInterface);
   getlist := WlanAllocateMemory(SizeOf(Tndu_WLAN_PROFILE_INFO_LIST));

   return := WlanGetProfileList(hHandle, @pInterface^.InterfaceInfo[i1].InterfaceGuid, nil, @getList);   return := WlanGetProfile(hHandle, @pInterface^.InterfaceInfo[i1].InterfaceGuid, @getList.ProfileInfo[0].strProfileName, nil, @Profile, nil, nil);
   
   hHandle := WlanCloseHandle(hHandle, nil);
Wobei ich Profile schon in allen mir bekannten möglichkeiten deklariert haben, bzw angegeben habe.
Muss ich den Speicher für die Variable Profile vorher mit WLANAllocateMemory zuweisen, wenn ja wie groß muss ich
den Speicherbereich wählen?

Oder sehe ich den Aufruf dieser Prozedur gänzlich falsch und er gibt mir überhaupt nicht das Profil des WLAN's zurück?

Ich wäre für Hilfe wirklich dankbar, da ich nun echt nicht mehr weiter weiß woran es liegen könnte.

Vielen Dank schonmal im vorraus,

Gruß
Lucy

himitsu 30. Okt 2009 05:11

Re: WLAN API Problem mit getProfile
 
Ja, ich weiß, daß es etwas spät ist, aber ich hab's grad zufällig gesehn :stupid:

Wenn sich dieser Nitschedu halbwegs an die Definitionen aus'm MSDN gehalten hat, dann klappt es vermutlich an einigen Stellen nicht mit der Speicherreservierung

zu WlanAllocateMemory:

SizeOf(Tndu_WLAN_PROFILE_INFO_LIST) wäre demnach zu klein, da dort in diesem Typ kein speicher für die Liste vorgesehn ist und man muß diesen selber hinten dranhängen.
Es sei denn man definiert seine Typen etwas anders, als die MSDN-Vorlage sagt und legt schon im Typen den Speicher an.

Auch für pInterface (WlanEnumInterfaces) müßte man wohl noch Speicher reservieren.
Und bei Profile in WlanGetProfile wird es wohl das selbe Problem sein.


Falls du da noch weiter machen möchtest:
Hättest du zufällig eine kleine Testanwendungen, samt der Definitionen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 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