想用delphi写一个测ping值的小应用,遇到几个问题,帮忙看看!
各位好:
闲来无事,想弄个测ping值的小应用,遇到如下问题,希望大家有爱互助,非常感谢。
我的思路:调用cmd命令ping地址,得到的结果放到c:/pt.txt中,再读取txt提取ping值,显示在窗体上。
我的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:='/k ping www.qq.com>c:/pingtest.txt';
ShellExecute(Handle,nil, 'cmd.exe',Pchar(s),nil,SW_NORMAL);
end;
问题:
1,调用了cmd,窗体就出来了,不好,最好能隐藏掉
2,命令只执行了一次,能不能重复执行?
3,文本生成了,我想提取文本里的ping值,如何提取?
文本文件内容如下:
Pinging www.qq.com [101.226.42.62] with 32 bytes of data:
Reply from 101.226.42.62: bytes=32 time=5ms TTL=50
Reply from 101.226.42.62: bytes=32 time=5ms TTL=50
Reply from 101.226.42.62: bytes=32 time=5ms TTL=50
Reply from 101.226.42.62: bytes=32 time=5ms TTL=50
Ping statistics for 101.226.42.62:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 5ms, Maximum = 5ms, Average = 5ms
谢谢各位指点!快来指点啊!欢迎指指点点!
[解决办法]
你这样做不行的,ping的结果从文件里读很费代码的,因为你不知道这个文件什么时候是结束,需要轮询。
强烈建议你用idIcmpClient组件来完成。
[解决办法]
建议参考一下老外的程序EMCO Ping Monitor,主要也是实现与楼主的想法。
[解决办法]
强烈建议你用idIcmpClient组件来完成。