c# - How do I resend pings every five minutes to my list of IP Addresses -
first forgive me, new c#, trying teach myself language @ same time creating program.
i have list of ip addresses, buttons each of ip addresses being created on tablelayoutpanel inside flowlayoutpanel. tag each of buttons ip address button.
right code below pings once ip address , turns buttons control grey either red or green based off how ping returned.
private void tlp_controladded(object sender, controleventargs e) { ipaddress ip; if(ipaddress.tryparse((string)e.control.tag,out ip)) { ping pingit = new ping(); pingit.pingcompleted += pingit_pingcompleted; pingit.sendasync(ip, 2000, e.control); } } void pingit_pingcompleted(object sender, pingcompletedeventargs e) { control ctrl = (control)e.userstate; if (e.reply.status == ipstatus.success) { ctrl.backcolor = color.lime; } else { ctrl.backcolor = color.red; ctrl.forecolor = color.white; } } what program re-ping ip addresses every 5 minutes until form closed , color buttons respectably if change in ping response occurs.
edit:::: suggesting this? getting 4 erros code.
1.the best overloaded method match 'sca_up_tool.form2.timertick(object, system.timers.elapsedeventargs)' has invalid arguments 2.argument 2: cannot convert 'system.windows.forms.controleventargs' 'system.timers.elapsedeventargs' 3.system.timers.elapsedeventargs' not contain definition 'control' , no extension method 'control' accepting first argument of type 'system.timers.elapsedeventargs' found (are missing using directive or assembly reference?) 4.'system.timers.elapsedeventargs' not contain definition 'control' , no extension method 'control' accepting first argument of type 'system.timers.elapsedeventargs' found (are missing using directive or assembly reference?)
system.timers.timer pingtimer; private void tlp_controladded(object sender, controleventargs e) { pingtimerstart(sender, e); } void pingtimerstart(object sender, controleventargs e) { pingtimer = new system.timers.timer(300000); // 300 seconds - 5 minutes pingtimer.elapsed += new elapsedeventhandler(timertick(sender, e)); pingtimer.start(); } void timertick(object source, elapsedeventargs e) { ipaddress ip; if (ipaddress.tryparse((string)e.control.tag, out ip)) { ping pingit = new ping(); pingit.pingcompleted += pingit_pingcompleted; pingit.sendasync(ip, 2000, e.control); } } void pingit_pingcompleted(object sender, pingcompletedeventargs e) { control ctrl = (control)e.userstate; if (e.reply.status == ipstatus.success) { ctrl.backcolor = color.lime; } else { ctrl.backcolor = color.red; ctrl.forecolor = color.white; } }
there several methods, simplest solution use timer.
try like
timer pingtimer; void pingtimerstart() { pingtimer = new timer(300000); // 300 seconds - 5 minutes pingtimer.elapsed += new elapsedeventhandler(ontimedevent); pingtimer.start(); } void timertick(object source, elapsedeventargs e) { // send ping code here }
Comments
Post a Comment