爱问知识人 爱问教育 医院库

delphi调用CMD命令的问题

首页

delphi调用CMD命令的问题

我用如下代码调出了CMD窗口,并且实现了ping  
s:='/k ping  ';
ShellExecute(Handle,nil,'cmd.exe',pchar(s),nil,SW_show);
请问我应该如何在delphi里得到ping的返回值。
我的本意是想通过ping  来判断电脑连接到公网上没有。如果能够将ping的返回值存到一个文本文件中,我就可以利用这个文本文件进行判断。
希望各位指点我一下,如果各位有更好判断局域网内机器是否接到公网的办法,欢迎提出(注意:是局域网共享上网)
我还有一个想法是通过获取电脑的IP地址来判断,但是我试过很多方法,都只能获得电脑在局域网内的IP地址,如果谁知道如何获得电脑在公网的IP地址,也欢迎提出
十分感谢,怀着感激的心情将100分送上(如果有特别的USE VAR 请一定要一并提出)。

提交回答
好评回答
  • 2007-09-07 15:17:24
    得到ping返回值有两种方法:
    1、修改s:='/k ping  >aaa.txt';这样很简单的就把返回情况转向到aaa.txt。
    2、若想精确控制ping的情况,可以考虑使用idicmpclient控件(在indy client)的ping方法。具体看一下控件的帮助。
    3、至于你说的获取公网地址,要看你是否是网管。使用共享上网,大多是使用地址转换,每台机器应该没有公网地址,而是在路由(作为网关的设备)动态地维护了一个内网地址——外网地址:端口映射表。外网地址就一个,一旦内址联通外网,用不同的端口对应不同的内址。所以,只有网管员才有可能登陆设备查看,也可以通过这个表知道内址是否联通外网。
    不知道我说的是否有帮助!

    w***

    2007-09-07 15:17:24

类似问题

换一换
  • 其他编程语言 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 177-196
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):