`

C# 实现带参数启动其他程序(测试网络情况)

    博客分类:
  • C#
阅读更多
现在 .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;



分享到:
评论

相关推荐

    C#控制台程序之间参数传递

    总结一下,通过`Process`类启动另一个控制台程序并传递参数,然后在目标程序的`Main`函数中使用正则表达式解析参数,可以实现控制台程序之间的交互。这种方法在各种场景下都非常有用,比如在脚本自动化、系统集成...

    C# WPF 创建启动参数的简单实例

    在C# WPF(Windows Presentation Foundation)开发中,创建启动参数是常见的需求,这使得程序在启动时可以接收外部输入,比如命令行参数或者配置文件。这个实例将帮助开发者了解如何在WPF应用中处理这些参数,从而...

    C#MVC实现带参数的构造注入

    在C# MVC中,我们可以通过Castle Windsor来实现在控制器中带有参数的构造函数注入。 首先,我们需要了解什么是依赖注入。依赖注入是一种设计模式,其核心思想是将依赖关系从代码中解耦出来,使得组件之间可以独立地...

    C#实现后门程序的实例

    首先,我们要明确,创建和使用后门程序违反了网络安全伦理,应当只在合法授权的环境中进行,如自家计算机或测试环境,绝不能用于非法入侵他人的系统。 C#是一种广泛应用于Windows平台的面向对象的编程语言,其丰富...

    网络唤醒开机C#源程序

    标题提到的"网络唤醒开机C#源程序"是用C#编程语言实现的WOL功能。 在C#中实现WOL主要涉及以下知识点: 1. **UDP协议**:WOL使用的是用户数据报协议(UDP),因为它不需要建立连接,只需将数据包发送到目标地址,...

    C# 程序是否启动监控服务

    4. **启动程序**:如果目标程序未运行,我们可以使用`Process.Start`方法来启动它。记得提供正确的程序路径和参数。 5. **定时检查**:为了持续监控,我们可能还需要引入一个定时器(`System.Timers.Timer`)。在`...

    URL Protocol 示例 C#代码 可以实现网页点击打开本地程序,

    接着,再创建一个名为`shell`的子键,下面创建一个名为`open`的子键,最后在`open`子键下创建一个名为`command`的子键,其`默认`值应为你的应用程序可执行文件路径,加上`%1`作为参数,用于接收URL协议中的数据。...

    基于c#编程的系统压力测试工具

    程序会根据预设的参数或用户自定义设置,模拟大量进程或线程的创建,同时记录和显示系统资源的使用情况,如CPU占用率、内存消耗、上下文切换频率等关键指标。测试结果可以帮助开发者分析系统在高负载下的行为,找出...

    网络ping测试工具c#源码

    本项目提供了一个基于C#编程语言的简单网络监测工具,可帮助用户测试本机与局域网或广域网内的其他设备之间的ping响应,以评估网络的连通性和延迟状况。下面我们将详细探讨该工具的核心功能、实现原理以及源码分析。...

    C# WInForm窗体嵌入外部EXE程序.zip

    2. **启动外部EXE程序**:在C#中,我们可以使用`Process`类来启动和管理外部应用程序。`Process.Start()`方法接受一个字符串参数,该参数指定要执行的程序的完整路径。 ```csharp Process process = new Process();...

    PComm c#测试程序

    1. **初始化与配置**:在程序启动时,需要进行必要的初始化工作,例如设置通讯参数(波特率、数据位、停止位、校验位等)以及设备连接信息。这些配置直接影响到与硬件设备的通讯质量。 2. **API调用**:PComm库提供...

    C# Winform实现的系统程序管理器

    【C# Winform实现的系统程序管理器】是一种利用C#编程语言和Windows Forms(Winform)技术构建的桌面应用程序,旨在提供一个简洁且高效的工具来管理计算机上的程序。Winform是.NET Framework的一部分,用于创建具有...

    威强电工业电脑IO测试程序C#版本

    总的来说,威强电工业电脑的C#版IO测试程序是针对工业控制领域的一种重要工具,它利用C#的高级特性与底层DLL相结合,实现对IO接口的全面测试,确保了工业设备的可靠运行。对于开发者来说,深入理解和掌握这类程序的...

    .net C#Twain连接打印机扫描仪winform测试demo

    本文将详细讲解".net C# Twain连接打印机扫描仪winform测试demo"的相关知识点,以及如何在Windows Forms(Winform)应用中实现扫描仪的控制和数据获取。 首先,`.NET C#`是Microsoft开发的一种面向对象的编程语言,...

    如何创建开机自启动程序实例C#.net源代码编写

    在本文中,我们将深入探讨如何使用C#.NET编写一个开机自启动程序的实例。C#.NET是一种强大的编程语言,常用于构建Windows应用程序,包括那些在系统启动时自动运行的程序。下面,我们将详细讲解实现这一功能的关键...

    C#实现的三角网快速构建程序

    "TriTestForm"可能是项目的主程序入口或测试界面,可能包含用于用户交互的控件,如按钮来启动生成过程,文本框或滑块用于设置点的数量,以及可能的图形窗口来显示生成的三角网。用户可以通过修改这些参数,实时观察...

    c# 模拟操作和处理SandBox沙盘的源码 包括安装和卸载 访问注册表 参数化启动沙盘等操作

    C#虽然没有内置这样的功能,但可以通过Windows API或者其他第三方库实现。 7. **多线程与并发** 沙盘可能需要处理多个并行运行的任务,因此源码可能涉及到线程管理和并发控制。C#的线程池(ThreadPool)和异步编程...

    用C#做ScreenSaver,屏幕保护程序,C#源代码

    在Windows操作系统中,屏幕保护程序可以通过编程实现,而C#作为.NET Framework的主要编程语言,非常适合开发此类应用程序。本教程将深入探讨如何使用C#创建一个基本的屏幕保护程序。 首先,我们需要理解C#中的...

    Daq_Test.zip_C# ni8501卡_DAQ C#_NI采集程序_采集

    3. **编写采集代码**:用C#编写控制程序,包括初始化硬件、设置采样参数、启动/停止采集、读取数据等操作。 4. **数据处理**:采集到的数据可能需要进行滤波、校准、转换等预处理,然后可以存储到文件或实时显示在...

    简易关机小程序测试版C#

    本项目“简易关机小程序测试版C#”是一个初学者的作品,旨在实现一个简单易用的关机功能,这对于新手来说是一个很好的学习实践项目。 首先,我们要理解C#语言的基础。C#由微软公司开发,是.NET框架的一部分,它支持...

Global site tag (gtag.js) - Google Analytics