![]() |
WLAN Kieker
Liste der Anhänge anzeigen (Anzahl: 2)
Das Programm zeigt WLAN-Netze an.
Vielmehr hat jemand Kritik oder Verbesserungsvorschläge. Das Program ist mit XE5 unter Win8.1Pro compiliert. Dürfte dann wohl nur unter Win8 laufen. Änderungen: 2014-05-13: Änderungen entsprechend Anmerkungen von Himitsu in #6 und #8. |
AW: WLAN Kieker
Liste der Anhänge anzeigen (Anzahl: 1)
Schlechter Scherz - Das Warnfenster kommt im Sekundentakt.
Musste ich abschiessen mit dem Task-Manager! Problem: Fehlende Überprüfung, ob WLAN vorhanden UND eingeschaltet ist! |
AW: WLAN Kieker
Kein Scherz, nur ein Timer, der die Abfrage wiederholt.
|
AW: WLAN Kieker
Zitat:
:oops: |
AW: WLAN Kieker
Das sit die Funktion:
Delphi-Quellcode:
Ich hab Win8.1Pro64bit
function TNativeWifi.GetAvailableNetworkList(I: DWORD): Boolean;
{******************************************************************************* * -2- Die für das Interface verfügbaren Netzwerke ermitteln. * ------------------------------------------------------------------------------ * http://msdn.microsoft.com/en-us/library/windows/desktop/ms706749.aspx } var dwResult : DWord; begin { * Ggfs. Netzwerkliste freigeben. } if pAnList <> nil then begin WlanFreeMemory(pAnList); pAnList := nil; end; { * Liste der verfügbaren Netzwwerke holen. } dwResult := WlanGetAvailableNetworkList(hClient, @pIfList^.InterfaceInfo[pIfList^.dwIndex].InterfaceGuid, 0, nil, @pAnList); Result := dwResult = ERROR_SUCCESS; if not(Result) then raise EWLANError.CreateFmt('WlanGetAvailableNetworkList fehlgeschlagen mit Fehler %d', [dwResult]) end; Habe die EXE ausgetauscht. Wenn bei der Abfrage ein Fehler auftaucht sollte der Timer abgestellt werden. |
AW: WLAN Kieker
Was soll denn der Parameter machen?
Und dann sollte man sich entscheiden: - entweder Fehlerbehandlung über Rückgabewerte - oder Fehlerbehandlung mitteld Exceptions. Beides geht nicht, denn das Result kann niemals False sein. Und in einem Timer sollter man niemals Exceptions oder sonstige modale Dialoge anzeigen/verursachen. Es sei denn man deaktiviert so lange den Timer und das nächste Event kommt nicht sofort, nachdem der Timer wieder freigegeben wurde, bzw. der Timer wird danach für immer/länger deaktiviert.
Delphi-Quellcode:
// Liste der verfügbaren Netzwwerke holen.
procedure TNativeWifi.GetAvailableNetworkList; var dwResult: HRESULT; begin if Assigned (pAnList) then begin // Ggfs. Netzwerkliste freigeben. WlanFreeMemory(pAnList); pAnList := nil; end; dwResult := WlanGetAvailableNetworkList(hClient, @pIfList^.InterfaceInfo[pIfList^.dwIndex].InterfaceGuid, 0, nil, @pAnList); if dwResult <> ERROR_SUCCESS then raise EWLANError.CreateFmt('WlanGetAvailableNetworkList fehlgeschlagen mit Fehler %d', [dwResult]) end;
Delphi-Quellcode:
Letzteres ist blöd, da hier sämtliche Fehlerinfos verloren gehen, also wenn schon, dann eher so. (oder den Fehler als Property "letzter Fehlercode" ins TNativeWifi)
// Liste der verfügbaren Netzwwerke holen.
function TNativeWifi.GetAvailableNetworkList: Boolean; var dwResult: HRESULT; begin if Assigned (pAnList) then begin // Ggfs. Netzwerkliste freigeben. WlanFreeMemory(pAnList); pAnList := nil; end; dwResult := WlanGetAvailableNetworkList(hClient, @pIfList^.InterfaceInfo[pIfList^.dwIndex].InterfaceGuid, 0, nil, @pAnList); Result := dwResult = ERROR_SUCCESS; end;
Delphi-Quellcode:
Und bei Ersterem muß natürlich ein Try-Except außen drumrum, wenn es im Timer aufgerufen wird.
// Liste der verfügbaren Netzwwerke holen.
function TNativeWifi.GetAvailableNetworkList: HRESULT; begin if Assigned (pAnList) then begin // Ggfs. Netzwerkliste freigeben. WlanFreeMemory(pAnList); pAnList := nil; end; Result := WlanGetAvailableNetworkList(hClient, @pIfList^.InterfaceInfo[pIfList^.dwIndex].InterfaceGuid, 0, nil, @pAnList); end; |
AW: WLAN Kieker
Danke Himitsu. Meinst Du mit Parameter dwResult?
Die zweite Möglichkeit mit einen LastErrorCode wäre meiner Ansicht nach wohl das sinnvollste. Interessant wäre zu wissen was der Fehlercode -2144067582 bedeutet. |
AW: WLAN Kieker
Nee, ich meinte das I. :zwinker:
Entweder im MSDN ( ![]() oder man versucht einfach mal ![]() ![]() Den Wert der Konstanten findet man entweder in Header-Übersetzungen (vielleicht kennt es Delphi ja schon), oder in anderen API-Projekten, oder über Google, oder man besorgt sich das entsprechende PSDK. |
AW: WLAN Kieker
Es gibt nur diese
Zitat:
|
AW: WLAN Kieker
EasyBoxKeyDecrypter:lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz