Hallo Leute!
Ich versuche ein einfaches Programm zu schreiben, das mittels ping 2 ips auf ihre erreichbarkeit prüft, und wenn beide nicht mehr erreichbar sind, dann soll ehr den pc mittel shellexecute runterfahren!
Aber wie zum teufel mach ich das? ich werd wahnsinnig! Hab schon alles probiert! Aber er gibt mir keine meldung, wenn die ip nicht erreich bar ist, wenn der ping durchgeht ist alles wunderbar aber wenn er nicht durchgehn, dann macht der grad mal garnichts, nicht mal das was in der if-anweisung steht! Wäre nett wenn mir jemand helfen könnten! Hier ist erstmal der Code! Danke schonma im vorraus!
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, icmp, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; mem_out: TMemo; Box1: TPing; Box2: TPing; Edit2: TEdit; TimerPing: TTimer; Button2: TButton; TimerCheck: TTimer; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Box1Ping(sender: TObject; status, ip, roundtime: Integer); procedure TimerPingTimer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure TimerCheckTimer(Sender: TObject); procedure Box2PingPing(sender: TObject; status, ip, roundtime: Integer); procedure Button3Click(Sender: TObject); private public end;
var Form1: TForm1; Sucessbox1,Sucessbox2 :Integer ;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin Box1.Hostname := edit1.Text; Box2.Hostname := edit2.Text; end;
procedure TForm1.Box1Ping(sender: TObject; status, ip, roundtime: Integer); begin case status of ip_success: if (status = 0) then sucessbox1:=1 else sucessbox1:=0;
end; end;
procedure TForm1.TimerPingTimer(Sender: TObject); begin Box1.action; Box2.action; end;
procedure TForm1.FormCreate(Sender: TObject); begin Sucessbox1 := 1; Sucessbox2 := 1; button1.Caption :='Übernehmen'; button2.Caption :='Starten' ; button3.Caption :='Ping ende'; TimerPing.Enabled := False; TimerCheck.Enabled := False; end;
procedure TForm1.Button2Click(Sender: TObject); begin TimerPing.Enabled := True; TimerCheck.Enabled := True; end;
procedure TForm1.TimerCheckTimer(Sender: TObject); begin if (sucessbox1 + sucessbox2 = 2) then mem_out.Lines.Add('OK') else mem_out.Lines.Add('Es wird runtergefahren')
end;
procedure TForm1.Box2PingPing(sender: TObject; status, ip, roundtime: Integer); begin case status of ip_success: if (status = 0) then sucessbox2:=1 else sucessbox2:=0; end; end; procedure TForm1.Button3Click(Sender: TObject); begin Box1.Terminate; Box2.Terminate; TimerPing.Enabled:=False; TimerCheck.Enabled:=False; end;
end. |