![]() |
Internet-Verbindung als Event abfangen und anzeigen
Frage: ich versuche das online und offline gehen mit einem event signalisieren, was mach ich hier falsch???
Delphi-Quellcode:
danke schonmal im vorraus
const
RASCN_Connection = $00000001; RASCN_Disconnection = $00000002; RASCN_BandwidthAdded = $00000004; RASCN_BandwidthRemoved = $00000008; function RasConnectionNotification(hrasconn: THRasConn; hEvent: THandle; dwFlags: Longint): longint; external 'rasapi32.dll' name 'RasConnectionNotificationA'; var pCanRead: PWOHandleArray; begin pCanRead:=AllocMem(2*sizeof(THandle)); pCanRead[0]:=CreateEvent(nil,True,False,'RASStatusNotificationObject1'); RasConnectionNotification(INVALID_HANDLE_VALUE, pCanRead[0], RASCN_Connection); if pCanRead[0] = 0 then showmessage('geht net'); pCanRead[1]:=CreateEvent(nil,True,False,'RASStatusNotificationObject2'); if pCanRead[1] = 0 then showmessage('geht net'); RasConnectionNotification(INVALID_HANDLE_VALUE, pCanRead[1], RASCN_Connection); if WaitForMultipleObjects(2, @pCanRead[0], False, 20) = WAIT_OBJECT_0 then showmessage('online'); if WaitForMultipleObjects(2, @pCanRead[1], False, 20) = WAIT_OBJECT_0+1 then showmessage('offline'); end; |
Re: Internet-Verbindung als Event abfangen und anzeigen
Moin mumu,
schau Dir nochmal genau die Dokumentation zu WaitForMultipleObjects an. |
Re: Internet-Verbindung als Event abfangen und anzeigen
tja ich kriegs halt einfach nicht... habs heut jetzt den ganzen tag probiert, weiß nicht was ich da falsch mach WaitForMultipleObjects hab ich auch schon auf INFINITE gesetzt bzw. in eine Schleife gepackt, aber nix... habs auch schon mit waitforsingleobject gemacht:
Delphi-Quellcode:
wär echt spitze wenn mir jemand nochmal helfen würd
var
Event: THandle; begin Event := CreateEvent(nil,False,False,'RASStatusNotificationObject1'); RasConnectionNotification(INVALID_HANDLE_VALUE, Event, RASCN_Connection); waitret := waitforsingleobject(event, INFINITE); showmessage(inttostr(waitret)); danke |
Re: Internet-Verbindung als Event abfangen und anzeigen
Moin Mumu,
statt Deiner zwei if Zeilen aus dem Eingangsposting probier's mal hiermit (ungetestet, sollte aber gehen):
Delphi-Quellcode:
Da ich das hier direkt reingeschrieben habe könnten noch Fehler enthalten sein.
var
dwResult : DWORD; fExit : boolean; begin // der Teil vor den if Zeilen fExit := false; while not fExit do begin dwResult := WaitForMultipleObjects(2,@pCanRead[0],False, 20); case dwResult of WAIT_OBJECT_0 : begin ShowMessage('online'); fExit := true; end; WAIT_OBJECT_0 + 1 : begin ShowMessage('offline'); fExit := true; end; end; end; end; Als Timeout kannst Du natürlich auch etwas anderes angeben. |
Re: Internet-Verbindung als Event abfangen und anzeigen
also erstmal vielen dank für die antwort, nur es geht immer noch nicht. also ich denke nicht, dass es an der wait-funktion liegt, da ich es auch schon ganz einfach mit waitforsingleobject probiert hab... ich denk irgendwie, dass es entweder am erstellen des events hakt oder das die funktion RasConnectionNotification haut nicht richtig hin, hab schon ganz schön viel probiert... vielleicht hat ja jemand noch nie idee. hier nochmal mein jetziger code:
Delphi-Quellcode:
pCanRead:=AllocMem(2*sizeof(THandle));
pCanRead[0]:=CreateEvent(nil,True,False,'RASStatusNotificationObject1'); RasConnectionNotification(INVALID_HANDLE_VALUE, pCanRead[0], RASCS_Connected); if pCanRead[0] = 0 then showmessage('geht net'); pCanRead[1]:=CreateEvent(nil,True,False,'RASStatusNotificationObject2'); if pCanRead[1] = 0 then showmessage('geht net'); RasConnectionNotification(INVALID_HANDLE_VALUE, pCanRead[1], RASCS_Disconnected); fExit := false; while not fExit do begin dwResult := WaitForMultipleObjects(2,@pCanRead[0],False, 20); case dwResult of WAIT_OBJECT_0 : begin ShowMessage('online'); fExit := true; end; WAIT_OBJECT_0 + 1 : begin ShowMessage('offline'); fExit := true; end; end; end; |
Re: Internet-Verbindung als Event abfangen und anzeigen
und noch jemand irgend eine idee... bin da immer noch dran.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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-2025 by Thomas Breitkreuz