现在 .net为我们提供了强大的功能来调用外部工具,并通过重定向输入、输出获取执行结果,下面就用一个例子来说明调用Ping.exe命令实现网络的检测,希望对.net初学者有所帮助。
方法一:
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false; //此属性必须设置成false
proc.StartInfo.RedirectStandardOutput = true;// 此属性必须设置成true
proc.StartInfo.FileName = @"ping.exe";
proc.StartInfo.Arguments = "www.baidu.com";// ping.exe 192.168.10.*
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
MessageBox.Show(output);
方法二:
首先,我们用使用Process类,来创建独立的进程,导入System.Diagnostics,
using System.Diagnostics;
实例一个Process类,启动一个独立进程
Process p = new Process();
Process类有一个StartInfo属性,这个是ProcessStartInfo类,包括了一些属性和方法,
下面我们用到了他的几个属性:
设定程序名
p.StartInfo.FileName = "cmd.exe";
关闭Shell的使用
p.StartInfo.UseShellExecute = false;
重定向标准输入
p.StartInfo.RedirectStandardInput = true;
重定向标准输出
p.StartInfo.RedirectStandardOutput = true;
重定向错误输出
p.StartInfo.RedirectStandardError = true;
设置不显示窗口
p.StartInfo.CreateNoWindow = true;
上面几个属性的设置是比较关键的一步。
既然都设置好了那就启动进程吧,
p.Start();
输入要执行的命令,这里就是ping了,
p.StandardInput.WriteLine("ping -n 1 192.192.132.229");
p.StandardInput.WriteLine("exit");
从输出流获取命令执行结果,
string strRst = p.StandardOutput.ReadToEnd();
在本机测试得到如下结果:
"Microsoft Windows 2000 [Version 5.00.2195]\r\n(C) 版权所有 1985-2000 Microsoft Corp.\r\n\r\nD:\\himuraz\\csharpproject\\ZZ\\ConsoleTest\\bin\\Debug>ping -n 1 192.192.132.231\r\n\r\r\nPinging 192.192.132.231 with 32 bytes of data:\r\r\n\r\r\nReply from 192.192.132.231: bytes=32 time<10ms TTL=128\r\r\n\r\r\nPing statistics for 192.192.132.231:\r\r\n Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),\r\r\nApproximate round trip times in milli-seconds:\r\r\n Minimum = 0ms, Maximum = 0ms, Average = 0ms\r\r\n\r\nD:\\himuraz\\csharpproject\\ZZ\\ConsoleTest\\bin\\Debug>exit\r\n"
if(strRst.IndexOf("(0% loss)")!=-1)
pingrst = "连接";
else if( strRst.IndexOf("Destination host unreachable.")!=-1)
pingrst = "无法到达目的主机";
else if(strRst.IndexOf("Request timed out.")!=-1)
pingrst = "超时";
else if(strRst.IndexOf("Unknown host")!=-1)
pingrst = "无法解析主机";
else
pingrst = strRst;
p.Close();
return pingrst;
分享到:
相关推荐
总结一下,通过`Process`类启动另一个控制台程序并传递参数,然后在目标程序的`Main`函数中使用正则表达式解析参数,可以实现控制台程序之间的交互。这种方法在各种场景下都非常有用,比如在脚本自动化、系统集成...
在C# WPF(Windows Presentation Foundation)开发中,创建启动参数是常见的需求,这使得程序在启动时可以接收外部输入,比如命令行参数或者配置文件。这个实例将帮助开发者了解如何在WPF应用中处理这些参数,从而...
在C# MVC中,我们可以通过Castle Windsor来实现在控制器中带有参数的构造函数注入。 首先,我们需要了解什么是依赖注入。依赖注入是一种设计模式,其核心思想是将依赖关系从代码中解耦出来,使得组件之间可以独立地...
首先,我们要明确,创建和使用后门程序违反了网络安全伦理,应当只在合法授权的环境中进行,如自家计算机或测试环境,绝不能用于非法入侵他人的系统。 C#是一种广泛应用于Windows平台的面向对象的编程语言,其丰富...
标题提到的"网络唤醒开机C#源程序"是用C#编程语言实现的WOL功能。 在C#中实现WOL主要涉及以下知识点: 1. **UDP协议**:WOL使用的是用户数据报协议(UDP),因为它不需要建立连接,只需将数据包发送到目标地址,...
4. **启动程序**:如果目标程序未运行,我们可以使用`Process.Start`方法来启动它。记得提供正确的程序路径和参数。 5. **定时检查**:为了持续监控,我们可能还需要引入一个定时器(`System.Timers.Timer`)。在`...
接着,再创建一个名为`shell`的子键,下面创建一个名为`open`的子键,最后在`open`子键下创建一个名为`command`的子键,其`默认`值应为你的应用程序可执行文件路径,加上`%1`作为参数,用于接收URL协议中的数据。...
程序会根据预设的参数或用户自定义设置,模拟大量进程或线程的创建,同时记录和显示系统资源的使用情况,如CPU占用率、内存消耗、上下文切换频率等关键指标。测试结果可以帮助开发者分析系统在高负载下的行为,找出...
本项目提供了一个基于C#编程语言的简单网络监测工具,可帮助用户测试本机与局域网或广域网内的其他设备之间的ping响应,以评估网络的连通性和延迟状况。下面我们将详细探讨该工具的核心功能、实现原理以及源码分析。...
2. **启动外部EXE程序**:在C#中,我们可以使用`Process`类来启动和管理外部应用程序。`Process.Start()`方法接受一个字符串参数,该参数指定要执行的程序的完整路径。 ```csharp Process process = new Process();...
1. **初始化与配置**:在程序启动时,需要进行必要的初始化工作,例如设置通讯参数(波特率、数据位、停止位、校验位等)以及设备连接信息。这些配置直接影响到与硬件设备的通讯质量。 2. **API调用**:PComm库提供...
【C# Winform实现的系统程序管理器】是一种利用C#编程语言和Windows Forms(Winform)技术构建的桌面应用程序,旨在提供一个简洁且高效的工具来管理计算机上的程序。Winform是.NET Framework的一部分,用于创建具有...
总的来说,威强电工业电脑的C#版IO测试程序是针对工业控制领域的一种重要工具,它利用C#的高级特性与底层DLL相结合,实现对IO接口的全面测试,确保了工业设备的可靠运行。对于开发者来说,深入理解和掌握这类程序的...
本文将详细讲解".net C# Twain连接打印机扫描仪winform测试demo"的相关知识点,以及如何在Windows Forms(Winform)应用中实现扫描仪的控制和数据获取。 首先,`.NET C#`是Microsoft开发的一种面向对象的编程语言,...
在本文中,我们将深入探讨如何使用C#.NET编写一个开机自启动程序的实例。C#.NET是一种强大的编程语言,常用于构建Windows应用程序,包括那些在系统启动时自动运行的程序。下面,我们将详细讲解实现这一功能的关键...
"TriTestForm"可能是项目的主程序入口或测试界面,可能包含用于用户交互的控件,如按钮来启动生成过程,文本框或滑块用于设置点的数量,以及可能的图形窗口来显示生成的三角网。用户可以通过修改这些参数,实时观察...
C#虽然没有内置这样的功能,但可以通过Windows API或者其他第三方库实现。 7. **多线程与并发** 沙盘可能需要处理多个并行运行的任务,因此源码可能涉及到线程管理和并发控制。C#的线程池(ThreadPool)和异步编程...
在Windows操作系统中,屏幕保护程序可以通过编程实现,而C#作为.NET Framework的主要编程语言,非常适合开发此类应用程序。本教程将深入探讨如何使用C#创建一个基本的屏幕保护程序。 首先,我们需要理解C#中的...
3. **编写采集代码**:用C#编写控制程序,包括初始化硬件、设置采样参数、启动/停止采集、读取数据等操作。 4. **数据处理**:采集到的数据可能需要进行滤波、校准、转换等预处理,然后可以存储到文件或实时显示在...
本项目“简易关机小程序测试版C#”是一个初学者的作品,旨在实现一个简单易用的关机功能,这对于新手来说是一个很好的学习实践项目。 首先,我们要理解C#语言的基础。C#由微软公司开发,是.NET框架的一部分,它支持...