C# Process 类的思考

在这里,我先给自己留个印象

下面我们用C#实现一个调用Dos命令的小程序,让大家对系统进程能有个直观的了解.要使用Process类,首先要引入System.Diagnostic命名空间,然后定义一个新的Process类,将其制定为打开一个Cmd.exe的命令,然后根据其的StanderInput和StanderOutput对其进行命令的输入和信息的读出.具体程序如下:

Process p=new Process();

p.StartInfo.FileName="cmd.exe"; //设置启动的进程命令

/**设置是否标准输入输出和标准错误,当这些都设为true时

**UseShellExcute必须为 false*/

p.StartInfo.UseShellExcute=false;

p.StartInfo.RedirectStanderInput=true;

p.StartInfo.RedirectStanderOutput=true;

p.StartInfo.RedirectStanderError=true;

p.StartInfo.CreatNoWindows=true;

p.start();

//向Dos窗口中输入ping的命令,这里的IP值请自己设置

p.StandardInput.WriteLine("ping -n 1 "+IP);

//输入退出窗口的命令

p..StandardInput.WriteLine("Exit");

/**这里用ReadToEnd读出输出并将其赋给一个string值,这里要

**注意的是ReadToEnd这个命令是在调用的程序结束后才可以执行的,所以

**要是把这句放在上面的"Exit"之后,程序就会进入一个死循环*/

string output= p.StandardOutput.ReadToEnd();

主要的工作已经完成了,下来就看你怎样利用程序的输入输出来完成一些功能了.

在这里我也写了一个实现:

Program代码  

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Diagnostics;
  6. namespace ConsoleApplication1
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Process process = new Process();
  13. string strBatPath = "E:/test.bat";
  14. string mess = ExecuteBAT(strBatPath, process);
  15. Console.WriteLine(mess);
  16. Console.ReadKey();
  17. }
  18. private static string ExecuteBAT(string strBatPath, Process pro)
  19. //文件路径;要执行bat文件的进程,返回执行结果
  20. {
  21. string mess = "";
  22. try
  23. {
  24. pro.StartInfo.UseShellExecute = true;
  25. //strBatPath是bat文件路径
  26. pro.StartInfo.FileName = strBatPath;
  27. pro.StartInfo.CreateNoWindow = true;
  28. if (pro.Start())
  29. {
  30. //写日志文件
  31. mess = DateTime.Now.ToLongDateString() + "  " + strBatPath + "执行成功";
  32. }
  33. else
  34. {
  35. mess = string.Format("执行{0}失败.", strBatPath);
  36. }
  37. }
  38. catch (Exception ex)
  39. {
  40. mess = ex.Message;
  41. }
  42. finally
  43. {
  44. pro.Close();
  45. }
  46. return mess;
  47. }
  48. }
  49. }

现在 在写一个读入文件的C#方法

C#代码  

  1. public static void printFile(string strFileName)
  2. {
  3. StreamReader srd;
  4. try
  5. {
  6. srd = File.OpenText(strFileName);
  7. }
  8. catch (Exception e)
  9. {
  10. Console.WriteLine(e.Message);
  11. Console.WriteLine("File not read");
  12. return;
  13. }
  14. while(srd.Peek()!=-1)
  15. {
  16. string str = srd.ReadLine();
  17. Console.WriteLine(str);
  18. }
  19. Console.WriteLine("End of read");
  20. srd.Close();
  21. }
  22. public static void InputFile(string strFileName)
  23. {
  24. StreamWriter swt;
  25. try
  26. {
  27. swt = File.CreateText(strFileName);
  28. }
  29. catch (Exception e)
  30. {
  31. Console.WriteLine(e.Message);
  32. Console.WriteLine("File not Write");
  33. return;
  34. }
  35. swt.WriteLine("chenhailong");
  36. swt.Close();
  37. }

C# Process 类的思考

时间: 2024-10-13 10:24:06

C# Process 类的思考的相关文章

浅析Java.lang.Process类

一.概述      Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序).      Process 类提供了执行从进程输入.执行输出到进程.等待进程完成.检查进程的退出状态以及销毁(杀掉)进程的方法.      ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息. 创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口

Java中使用Runtime和Process类运行外部程序

在编写Java程序时,有时候我们需要调用其他的诸如exe,shell这样的程序或脚本.在Java中提供了两种方法来启动其他程序: (1) 使用Runtime的exec()方法 (2) 使用ProcessBuilder的start()方法 Runtime和ProcessBulider提供了不同的方式来启动程序,设置启动参数.环境变量和工作目录.但是这两种方法都会返回一个用于管理操作系统进程的Process对象. 使用Runtime.getRuntime().exec()方法可以在java程序里运行

[转载]使用java.lang.Process类的简单例子

FROM: http://segmentfault.com/blog/lidonghao/1190000000372192 ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法.在J2SE 1.5之前,都是由Process类处来实现进程的控制管理.本文简单介绍一下Process类的用法以及一些需要注意的问题. API方法说明如下:- destroy() 杀掉子进程.- exitValue

深入研究java.lang.Process类

一.概述 Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序).       Process 类提供了执行从进程输入.执行输出到进程.等待进程完成.检查进程的退出状态以及销毁(杀掉)进程的方法.       ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息. 创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,

深入研究java.lang.Process类(转)

一.概述      Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序).      Process 类提供了执行从进程输入.执行输出到进程.等待进程完成.检查进程的退出状态以及销毁(杀掉)进程的方法.      ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息. 创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口

C#使用Process类调用外部程序(转)

在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程. 一.启动进程实例 Process myProcess = new Process(); try { myProcess.StartInfo.UseShellExecute = false; myProcess.StartInfo.FileName = "test.exe"; myProcess.StartInfo.CreateNoW

Process类 进程管理器Demo

Process用于管理计算机的进程,下面给出一个C#进程管理器的DEMO. namespace ProcessManager { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { listView1.FullRowSelect = true; GetProcess(); } priva

C#的Process类调用第三方插件实现PDF文件转SWF文件

在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来就会做一个简单的介绍. 在.NET平台中,对C#提供了一个操作对本地和远程的访问进程,使能够启动和停止系统进程.这个类就是System.Diagnostics.Process,我们首先来了解一下该类. 一.解析System.Diagnostics.Process类 在C#中使用Process类可以提

进程管理(Process类)

(Process类在System.Diagnostics命名空间下) [1]获取本地计算机所有进程 1 Progress[] myProgress = Progress.GetProcesses(); [2]获取本地计算机上指定的名称的进程 1 Process[] myProcess = Process.GetProcessesByName("进程名称"); 如: 1 Process[] myProcess = Process = Process.GetProcessByNeme(&q