`
myqhit
  • 浏览: 64852 次
社区版块
存档分类
最新评论

.Net Process

阅读更多
using System;// 要用使用Process类来创建独立的进程,导入
using System.Collections.Generic;
using System.Text;

using System.Diagnostics; //诊断

namespace Cmd
{

class CmdConsole
{

[STAThread]
static void Main(string[] args)
{
Console.Write("输入要执行的命令");
string ip = Console.ReadLine();
string strRst = CmdPing(ip);
Console.WriteLine(strRst);
Console.ReadLine();
}

private static
string CmdPing(string strIp)
{
// 实例一个Process类,启动一个独立进程
Process p = new Process();
// 设定程序名
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;
// 启动进程
string pingrst;
p.Start();
p.StandardInput.WriteLine(strIp);
p.StandardInput.WriteLine("exit");
// 从输出流获取命令执行结果
string strRst = p.StandardOutput.ReadToEnd();
pingrst = strRst;
// if end
p.Close();
return pingrst;
}
}
}


有些时候运行系统命令可以很方便的达到一些特定目的。比如说,可以用c:\>powercfg /H on来启用系统休眠。c:\>netsh firewall set opmode DISABLE可以用来禁用系统防火墙。

首先,在C#中运行一个外部程序是非常简单的: System.Diagnostics.Process.Start("cmd.exe", "/K dir");

该命令会弹出一个命令行窗口并 列出当前目录中的文件。把/K改成/C可以自动关闭弹出的命令行窗口,不过黑窗口还是一闪而过,而且我们看不到运行结果。

对 于我们漂亮的WinForm窗口,跳出黑黑的DOS窗口总是非常丑陋和让人不爽的。如何既能运行系统命令,又能拿到结果,而且还不显示丑陋的命令行窗口 呢?解决方法就是Process类中StartInfo成员。StartInfo成员可以指定弹出窗口是最小化,最大化,或是隐藏窗口。更妙的是,我们可 以通过设定StartInfo.CreateNoWindow=false,让该进程没有任何关联窗口!同时,我们接管该进程的标准输入和输出。设定 StartInfo.RedirectStandardOutput为真,然后从Process.StandartOutput读取运行结果。 

以下是一个逐步的示范,可以显示你机器当前的IP配置:

一、用VS2005或者C# Express建立一个Winform程序。

二、添加一个按钮和一个RichTextBox。

三、在设计界面双击添加的按钮,自动生成button1_Click事件响应代码。

四、把button1_Click代码换成以下所附代码。

五、编译并运行,大致运行结果可见所附的图片。

private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process proc = new Process();
proc.StartInfo.FileName = "netsh.exe";
proc.StartInfo.Arguments = "interface ipv4 show config";

proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;

this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
proc.Start();
using (StreamReader reader = proc.StandardOutput)
{
string line = reader.ReadLine();
while (line != null)
{
richTextBox1.AppendText(line + " ");
Application.DoEvents();
line = reader.ReadLine();
}
}
proc.WaitForExit();
this.Cursor = Cursors.Default;
}

分享到:
评论

相关推荐

    ASP.NET Process Model之一 IIS 和 ASP.NET ISAPI

    总结来说,ASP.NET Process Model是ASP.NET应用程序在IIS上运行的核心机制,它涉及到IIS的请求处理、ISAPI扩展的使用、以及ASP.NET运行时的内部工作流程。理解这个模型对于优化ASP.NET应用程序的性能、调试问题以及...

    k2.net介绍 K2.net 是SourceCode公司的一款工作流产品

    - **查看流程图**: 通过主页 > Process Overview可查看和理解流程的设计和状态。 总之,K2.net是一款全面的工作流解决方案,它提供了一套强大的工具集,帮助企业和组织设计、部署和管理业务流程,实现自动化和效率...

    VB.NET 获取进程命令参数修改版

    VB.NET提供了一种简单的方法来访问这些信息,主要通过`System.Diagnostics.Process`类。这个类允许我们管理运行在计算机上的进程,包括获取它们的命令行参数。 首先,让我们了解一下什么是进程和命令参数。一个进程...

    Process.NET:AC#类库,用于与流程进行交互

    Process.NET Process.NET是一个工具,可根据以下链接提供的许可,与基于JämesMénétrey(又名ZenLulz)的“ MemorySharp”库进行交互。 以下是提到的作者的原始图书馆及其图书馆的官方网站。 Process.NET仅仅是...

    2. ASP.NET Web开发性能优化

    服务器端还可调整ASP.NET Process Model,使用异步操作,并分析ORM框架生成的SQL性能。 在实际操作中,开发者需要考虑优化的时机、目标以及方法,根据业务需求和预期需求进行合理优化。参考文献如《Optimization: ...

    进程管理.rar

    在VB.NET中,System.Diagnostics命名空间下的Process类为我们提供了这些功能。 1. **创建进程**: 使用Process类的Start方法,可以启动一个新的进程。例如,如果我们想要打开一个网页,我们可以这样写: ```vb...

    Processbar.rar_csharp processbar_processBar .net_processbar_进度条

    相信每个应用程序都需要一个进度条来显示数据是否加载完毕.这个例子就是用C#编写的自定义进度条控件.

    Process.NET, 用于与进程交互的C# 类 ibrary.zip

    Process.NET, 用于与进程交互的C# 类 ibrary Process.NET下面是提到的作者原创和图书馆图书馆的官方网站。https://github.com/ZenLulz/MemorySharp/http://binarysharp.com/Process.NET 只是我学习为

    vb.net Create SYSTEM UserName Process

    要创建这样的进程,我们首先需要了解Process类,这是.NET Framework中用于启动、控制和管理进程的主要类。位于System.Diagnostics命名空间下,Process类提供了Start()方法来启动新的进程,并可以通过...

    .NET Patterns: Architecture, Design, and Process

    .NET Patterns: Architecture, Design, and Process "Was both insightful and comprehensive. It's great to see these patterns presented within the context of many architectural dilemmas facing the ...

    .NET Kill Process

    提供VB.NET编程方法, 强制Kill掉.exe .dll 进程。

    vb.net netstat 例子

    首先,我们需要了解`System.Diagnostics.Process`类,它是VB.NET中用于启动、控制和与外部进程交互的类。利用这个类,我们可以执行系统命令并获取其输出。下面是一个简单的例子,展示如何在VB.NET中调用`netstat`...

    【ASP.NET编程知识】IIS部署ASP.NET5的实现步骤.docx

    若要设置进程外托管,需要在项目文件(`.csproj`)中修改`AspNetCoreHostingModel`属性为`OutOfProcess`。进程外托管的应用进程与IIS工作进程分离,由ASP.NET Core模块管理进程。 **部署项目** 在IIS中添加新网站,...

    vb.net.rar_net process thre_vb.net_vb.net Proce_vb.net 多线程

    在VB.NET中,多线程编程是一个核心概念,特别是在开发高效、响应迅速的应用程序时。VB.NET通过使用公共语言运行时(Common Language Runtime,CLR)提供了对多线程的强大支持,使得开发者能够轻松地创建并发执行任务...

    VB.net只许一个实例运行.doc

    VB.net 单实例运行机制 VB.net 中单实例运行机制是指在同一个系统中只允许一个实例的程序运行,防止多个相同的程序实例同时运行。这种机制有多种实现方式,下面将介绍两种常见的实现方法。 方法一:通过进程名判断...

    如何使用C# 捕获进程输出

    首先,`System.Diagnostics.Process`是.NET Framework提供的一个类,它允许我们与操作系统中的进程进行交互,包括启动进程、监控进程状态以及读取其标准输出和错误输出。以下是一个简单的`Process`使用示例: ```...

    asp.net视频合并

    ASP.NET是一种基于微软.NET框架的开源web应用程序开发平台,它为开发者提供了丰富的工具和库,用于构建动态网站、Web应用程序和服务。在这个特定的场景中,我们讨论的是如何使用ASP.NET来实现一个视频合并的功能,这...

    .net 自动关机程序源代码

    .NET 自动关机程序源代码是开发者为了实现计算机定时自动关机、重启或者执行特定任务而编写的软件。这类程序通常使用Visual Basic .NET (VB.NET) 或者C#编程语言编写,这两种语言都是.NET Framework的重要组成部分。...

Global site tag (gtag.js) - Google Analytics