Entwickler-Ecke
Windows API - Name des W-LAN Netzes auslesen
JacK_Silent - Mo 05.11.07 12:23
Titel: Name des W-LAN Netzes auslesen
Gibt es eine Möglichkeit den Namen des W-LAN Netzes auszulesen, zu dem ich verbunden bin?
Zum einen aus Windows selbst und zum Anderen aus der INTEL Pro Set Wireless Software.
Vielen Dank
BenBE - Fr 09.11.07 15:13
Such mal nach WMI hier im Forum, da gab's dazu schon ein wenig Source.
BenBE - So 11.11.07 16:05
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| DWORD WINAPI WlanGetAvailableNetworkList( __in HANDLE hClientHandle, __in const GUID* pInterfaceGuid, __in DWORD dwFlags, __reserved PVOID pReserved, __out PWLAN_AVAILABLE_NETWORK_LIST* ppAvailableNetworkList ); |
Heißt in Delphi:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| function WlanGetAvailableNetworkList( hClientHandle : THandle; const pInterfaceGuid: PGUID; dwFlags: DWORD; pReserved: Pointer; out ppAvailableNetworkList: PWLAN_AVAILABLE_NETWORK_LIST ): DWORD; stdcall; external 'wlanapi.dll' name 'WlanGetAvailableNetworkList'; |
Weiterhin:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| typedef struct _WLAN_AVAILABLE_NETWORK_LIST { DWORD dwNumberOfItems; DWORD dwIndex; WLAN_AVAILABLE_NETWORK Network[1]; } WLAN_AVAILABLE_NETWORK_LIST, *PWLAN_AVAILABLE_NETWORK_LIST;
typedef struct _WLAN_AVAILABLE_NETWORK { WCHAR strProfileName[256]; DOT11_SSID dot11Ssid; DOT11_BSS_TYPE dot11BssType; ULONG uNumberOfBssids; BOOL bNetworkConnectable; WLAN_REASON_CODE wlanNotConnectableReason; ULONG uNumberOfPhyTypes; DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER]; BOOL bMorePhyTypes; WLAN_SIGNAL_QUALITY wlanSignalQuality; BOOL bSecurityEnabled; DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm; DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm; DWORD dwFlags; DWORD dwReserved; } WLAN_AVAILABLE_NETWORK, *PWLAN_AVAILABLE_NETWORK; |
wird zu
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| type WLAN_AVAILABLE_NETWORK_LIST = record dwNumberOfItems: DWORD; dwIndex: DWORD; Network: record end; end; WLAN_AVAILABLE_NETWORK = record strProfileName: array[0..255] of WideChar; dot11Ssid: DOT11_SSID; dot11BssType: DOT11_BSS_TYPE; uNumberOfBssids: DWORD; bNetworkConnectable: LongBool; wlanNotConnectableReason: WLAN_REASON_CODE; uNumberOfPhyTypes: DWORD; dot11PhyTypes: array[0..WLAN_MAX_PHY_TYPE_NUMBER-1] of DOT11_PHY_TYPE; bMorePhyTypes: LongBool; wlanSignalQuality: WLAN_SIGNAL_QUALITY; bSecurityEnabled: LongBool; dot11DefaultAuthAlgorithm: DOT11_AUTH_ALGORITHM; dot11DefaultCipherAlgorithm: DOT11_CIPHER_ALGORITHM; dwFlags: DWORD; dwReserved: DWORD; end; PWLAN_AVAILABLE_NETWORK = ^WLAN_AVAILABLE_NETWORK; PWLAN_AVAILABLE_NETWORK_LIST = ^WLAN_AVAILABLE_NETWORK_LIST; |
Der Rest sollte intuitiv zu übersetzen gehen.
Kleiner Hinweis zur Netzwerk-Liste:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| type TNetworkListArray = array[0..0] of WLAN_AVAILABLE_NETWORK; PNetworkListArray = ^TNetworkListArray var WLANs: PWLAN_AVAILABLE_NETWORK_LIST; ANL: PNetworkListArray; i: Integer; WLANInfo: WLAN_AVAILABLE_NETWORK; begin i := 0; ANL := @WLANs^.Network; for i := 0 To WLANs^.dwNumberOfItems - 1 do Begin WLANInfo := ANL^[i]; end; end; |
Keine Garantie für die Korrektheit jeglicher Pointer ;-)
JacK_Silent - So 11.11.07 19:23
Bin zu unfähig den von dir geposteten Code zu verwenden!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!