![]() |
Wird ein Event ausgelöst, wenn die Inet-Verb. getrennt wird?
Hallo Freunde :hi: ,
öh, solche Threads gibs hier sicher schon zuHauf, aber ich finde nicht das richtige.... Ich überprüfe, ob eine Verbindung besteht. Wenn eine besteht, dann versuche ich, sie zu beenden. Nun kann es doch mal vorkommen, dass es ein paar (Milli)Sekunden dauert, bis die Verbindung getrennt ist; da ich aber sofort nach dem Trennen überprüfe, ob die Verbindung noch steht und ensprechend verfahre, kann es vorkommen, dass die Verbindung getrennt wird, der PC aber trotzdem sagt, sie könne nicht beendet werden, weil sie in dem Moment, in dem mein Programm überprüft, gerade noch aktiv ist! Wird da irgendein Event oder so ausgelöst, wenn eine Verbindung beendet wird, woran man sieht, DASS sie beendet wurde? Ich habe das im Moment so gelöst, dass vor der Überprüfung das Programm noch 1-2 Sekunden wartet, aber das ist nicht sehr toll...
Delphi-Quellcode:
MfG Lefko
procedure TForm1.TiShutdownTimer(Sender: TObject);
var f : textfile; ConnDetails : TRASConnectionDetails; Upload, Download, Trennung, SDVerlauf, Volumen : string; begin TiShutdown.Enabled := false; TiCount.Enabled := false; Upload := ''; Download := ''; Trennung := ''; SDVerlauf := ''; Volumen := ''; //evtl. Verbindung trennen try if InternetGetConnectedState(nil, 0) then begin RasMonitor.GetRasConnection(ConnDetails); RasMonitor.HangUpRasConnection(Conndetails.RasConn); //verbindung soll getrennt werden sleep(1500); //warten.... getrennt := not InternetGetConnectedState(nil, 0); //hm, nicht sehr sicher... if not InternetGetConnectedState(nil, 0) and getrennt then Trennung := 'Internetverbindung getrennt.' else Trennung := 'Internetverbindung konnte nicht getrennt werden!'; //evtl. Datenvolumen & Onlinezeit bekommen if (GetSessionTraffic('In') / 1024 > 1024) then Download := 'Download: ' + FormatFloat('0.00', GetSessionTraffic('In') / 1024 / 1024) + ' Mb' else Download := 'Download: ' + FormatFloat('#,##0.00', GetSessionTraffic('In') / 1024) + ' Kb'; if (GetSessionTraffic('Out') / 1024 > 1024) then Upload := 'Upload: ' + FormatFloat('0.00', GetSessionTraffic('Out') / 1024 / 1024) + ' Mb' else Upload := 'Upload: ' + FormatFloat('#,##0.00', GetSessionTraffic('Out') / 1024) + ' Kb'; Volumen := ' (' + Upload + '; ' + Download + ')'; Trennung := Trennung + Volumen; end; except Trennung := 'Internetverbindung konnte nicht getrennt werden!'; end; (*---------Onlinezeit fehlt noch-----------*) //Logfile schreiben SDVerlauf := 'Shutdown am '+ DatetoStr(IncSecond(now,2)) + ' um ' + TimeToStr(now) + ' erfolgreich ausgeführt. '; assignfile(f, ExtractFilePath(Application.exename) + 'Shutdown.log'); if FileExists(ExtractFilePath(Application.exename) + 'Shutdown.log') then append(f) else rewrite(f); writeln(f, (SDVerlauf + Trennung)); writeln(f, ''); closefile(f); //Keinen Beenden-Dialog anzeigen Normalclose := true; //Windows_Shutdown; //ExitWin(EWX_POWEROFF or EWX_FORCE); //?? //ExitWin(EWX_SHUTDOWN or EWX_FORCE); //?? ExitWin(EWX_SHUTDOWN); //?? end; |
Re: Wird ein Event ausgelöst, wenn die Inet-Verb. getrennt w
Bei
![]() gruß Evian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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