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

下面我们用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();

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

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

  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#方法

  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 类的思考的更多相关文章

  1. 使用Process类重定向输出与错误时遇到的问题 (转)

    程序中要调用外部程序cmd.exe执行一些命令行,并取得屏幕输出,使用了Process类,基本代码如下: Process process = new Process(); process.StartI ...

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

    在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...

  3. 浅析Java.lang.Process类

    一.概述      Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序).      Process 类提供了执行从进程输入.执行输出到进程.等待进程完成.检查进程的 ...

  4. C#中Process类的使用

    本文来自: http://www.cnblogs.com/kay/archive/2008/11/25/1340387.html Process 类的作用是对系统进程进行管理,我们使用Process类 ...

  5. C#的Process类的一些用法

    c#之process类相关整理 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using Sys ...

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

    在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程.一.启动进程实例 Process myProc ...

  7. C# Process类_进程_应用程序域与上下文之间的关系

    进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.进程之间是相对独立的,一个进程无法直接访问另一个进程的数据(除非分布式),一个进程运行的失败也不会影响其他 ...

  8. c#之process类相关整理

    一.根据进程名获取进程的用户名?   需要添加对 System.Management.dll 的引用   using System.Diagnostics; using System.Manageme ...

  9. C#代码使用Process类调用SWFTools工具

    一.Process类调用SWFTools工具将PDF文档转为swf文档 1 string cmdStr = "D:\\SWFTools\\pdf2swf.exe"; string ...

随机推荐

  1. Android 开发框架介绍

    一.概述 现android开发有很多开发框架使用,做App不一定用到框架,但好框架的思想也是值得学习.选择合适的开发框架可提供实用功能,简化项目开发提升效率. 二.Afinal框架 简介 Afinal ...

  2. css的框架——global.css

    global.css,一般这个css文件是用于装全站主要框架css样式代码. “global”翻译为全局.全部.从翻译中大家也能理解global.css用于做什么.大站常常用于装全站公共的CSS样式选 ...

  3. 解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细

    这道题目没有所谓的完全的正确答案,这个题目可以让你在任意的一个点深入下去, 只要你对这个点是熟悉的.以下是一个大概流程: 浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP ...

  4. [Papers]NSE, $\p_3u$, Lebesgue space [Kukavica-Ziane, JMP, 2007]

    $$\bex \p_3\bbu\in L^p(0,T;L^q(\bbR^3)),\quad \frac{2}{p}+\frac{3}{q}=2,\quad \frac{9}{4}\leq q\leq ...

  5. 擦亮自己的眼睛去看SQLServer之简单Select(转)

    摘要:这篇文章主要和大家讨论几乎所有人都熟悉,但不少人又陌生的一条select语句. 这篇文章主要和大家讨论几乎所有人都熟悉,但不少人又陌生的一条select语句.不知道大家有没有想过到底是什么东西让 ...

  6. HDU5764 After a Sleepless Night 树形乱搞题

    分析(官方题解): 假设根已确定,可以发现新树若合法,需满足以下性质:根节点是n:儿子的值不大于父亲:具有相同值的节点形成一条链,并且链不会发生“分叉”(即有多个最低点).所以对于新树中有出现的值x, ...

  7. 酷派8150S(移动定制版)可用的第三方Recovery备份数据、刷机并精简系统内置APK经验

    希望使用的第三方Recovery下载地址: ClockworkMod ROM Manager - Recoveries http://clockworkmod.com/rommanager 适配的型号 ...

  8. sql语句中获取datetime任何部分

    sql语句中获取datetime的日期部分 sql语句中 经常操作操作datetime类型数据.今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来.网上有许多这方面的介绍. ...

  9. 【windows核心编程】IO完成端口(IOCP)复制文件小例

    1.演示内容 文件复制 2.提要 复制大文件时,使用FILE_FLAG_NO_BUFFERING标志 同时需要注意: 读写文件的偏移地址为 磁盘扇区 的整数倍 读写文件的字节数为 磁盘扇区 的整数倍 ...

  10. (三)相遇射线的3D碰撞盒

    序 在2D游戏中,我们知道处理碰撞时,需要设置精灵遮罩图.同样,进入3D,处理碰撞时需要3D模型作为“遮罩图”. 索尼克 飞檐走壁   目的 (1)处理模型间的碰撞问题         (2)获取鼠标 ...