Ich setze hier die Funktion "TraceRouteHost" von Synapse4.0 ein.
Problematisch ist wenn der Host nicht erreichbar ist, dann kann es locker >2 Minuten dauern bis das
Programm weiter abgearbeitet wird.
Was kann ich tun damit das Programm abgebrochen werden kann, zB. durch durücken auf das biSystemIcon (Kreuz-Button der Form)
Gruß
Michael
Ausschnitt aus dem Programm:
Code: Alles auswählen
//Traceroute only
if ssShift in Shift then begin
PingForm.Show;
PingForm.Caption:='Traceroute';
PingForm.Memo1.Clear;
PingForm.Memo1.Lines.Add('Routenverfolgung zu '+ip+chr(13));
{ TODO : Dauert sehr lange wenn Timeout (versucht 30 Hops) }
zwischenergebnis:=TraceRouteHost(ip); // <<<<<<<<<<<<<<<<<<<<<<<<<<
while pos(' ',zwischenergebnis) <> 0 do begin
trace_ip:=AnsiLeftStr(zwischenergebnis,pos(' ',zwischenergebnis)-1);
delete(zwischenergebnis,1,pos(' ',zwischenergebnis));
trace_ms:=AnsiLeftStr(zwischenergebnis,pos(chr(13),zwischenergebnis)-1);
delete(zwischenergebnis,1,pos(chr(13),zwischenergebnis));
PingForm.Memo1.Lines.Add(trace_ip+' '+trace_ms+chr(13)+' ms');
end;
PingForm.Memo1.Lines.Add('fertig.');
exit;
end;