我试图从我的C#程序ping本地计算机.为此,我使用以下代码.
System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo();
proc.FileName = @"C:\windows\system32\cmd.exe";
proc.Arguments = @"""ping 10.2.2.125""";
System.Diagnostics.Process.Start(proc);
Run Code Online (Sandbox Code Playgroud)
这将打开一个命令行窗口,但不会调用ping.是什么原因?
Jon*_*eet 38
你需要包含"/ c"参数来告诉cmd.exe你的意思:
proc.Arguments = "/c ping 10.2.2.125";
Run Code Online (Sandbox Code Playgroud)
(你当然可以直接调用ping.exe.有时这是合适的,以及更容易调用的时间cmd.)
public void ExecuteCommand(String command)
{
Process p = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = command;
p.StartInfo = startInfo;
p.Start();
}
Run Code Online (Sandbox Code Playgroud)
用法: ExecuteCommand(@"/c ping google.com -t");
别忘了使用 /c
cmd /C
Run Code Online (Sandbox Code Playgroud)
要么
cmd /K
Run Code Online (Sandbox Code Playgroud)
可能/ C因为/ K没有立即终止
你可以使用这个System.Net.NetworkInformation.Ping课程.
public static int GetPing(string ip, int timeout)
{
int p = -1;
using (Ping ping = new Ping())
{
PingReply reply = ping.Send(_ip, timeout);
if (reply != null)
if (reply.Status == IPStatus.Success)
p = Convert.ToInt32(reply.RoundtripTime);
}
return p;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52618 次 |
| 最近记录: |