Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Wird ein Event ausgelöst, wenn die Inet-Verb. getrennt wird? (https://www.delphipraxis.net/17011-wird-ein-event-ausgeloest-wenn-die-inet-verb-getrennt-wird.html)

Lefko 26. Feb 2004 20:54


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:
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;
MfG Lefko

Evian 27. Feb 2004 11:16

Re: Wird ein Event ausgelöst, wenn die Inet-Verb. getrennt w
 
Bei www.torry.net gibts ne Komponente die INetDetect v.1.0 heißt, die Dir anzeigt ab ne Verbindung besteht und glaube auch ob sie beendet wird. -> vielleicht hilft Dir das weiter?!

gruß

Evian


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