Moin,
folgendes Problem:
Ich hab ein Pingtool (mit IcmpClient) geschrieben. Wenn ich während eines Pings das Netzwerkkabel abziehe kommt ein Socketerror.
Den Fange ich mit OnException ab und gib ihn in der lisbox mit aus. Wie mache ich jetzt, dass das Programm danach die verbliebenen Pings weiter ausführt (so wie bei cmd->ping, da macht er auch wweiter wenn das Kabel abgezogen wird)?
Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E:
Exception);
begin
ListBox1.Items.Add('
error.');
end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: longint;
begin
//Umwandeln der eingaben (TEXT) in INTEGER
x1 := strtoint(n.Text);
timeout := strtoint(time.Text);
byte := strtoint(size.Text);
host_ip := host.Text;
//Einstellungen:
IdIcmpClient1.Host := host_ip;
IdIcmpClient1.ReceiveTimeout := timeout;
IdIcmpClient1.PacketSize := byte;
//Schleife fürs pingen + ausgabe + warten
if CheckBox1.Checked=True then
begin
repeat
begin
IdIcmpClient1.Ping; //ping ausführen
Application.ProcessMessages; //Ausgabe in Listbox
listbox1.ItemIndex:=listbox1.Items.Count - 1; //letzten Eintrag aktiv
listbox1.Items.SaveToFile(path.Text);
Sleep(1000);
end;
until CheckBox1.Checked=false;
end
else
begin
for i := 1 to x1 do
begin
IdIcmpClient1.Ping; //ping ausführen
Application.ProcessMessages; //Ausgabe in Listbox
listbox1.ItemIndex:=listbox1.Items.Count - 1; //letzten Eintrag aktiv
listbox1.Items.SaveToFile(path.Text);
Sleep(1000);
end;
end;
end;