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();
主要的工作已经完成了,下来就看你怎样利用程序的输入输出来完成一些功能了.
在这里我也写了一个实现:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Diagnostics;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- Process process = new Process();
- string strBatPath = "E:/test.bat";
- string mess = ExecuteBAT(strBatPath, process);
- Console.WriteLine(mess);
- Console.ReadKey();
- }
- private static string ExecuteBAT(string strBatPath, Process pro)
- //文件路径;要执行bat文件的进程,返回执行结果
- {
- string mess = "";
- try
- {
- pro.StartInfo.UseShellExecute = true;
- //strBatPath是bat文件路径
- pro.StartInfo.FileName = strBatPath;
- pro.StartInfo.CreateNoWindow = true;
- if (pro.Start())
- {
- //写日志文件
- mess = DateTime.Now.ToLongDateString() + " " + strBatPath + "执行成功";
- }
- else
- {
- mess = string.Format("执行{0}失败.", strBatPath);
- }
- }
- catch (Exception ex)
- {
- mess = ex.Message;
- }
- finally
- {
- pro.Close();
- }
- return mess;
- }
- }
- }
现在 在写一个读入文件的C#方法
- public static void printFile(string strFileName)
- {
- StreamReader srd;
- try
- {
- srd = File.OpenText(strFileName);
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- Console.WriteLine("File not read");
- return;
- }
- while(srd.Peek()!=-1)
- {
- string str = srd.ReadLine();
- Console.WriteLine(str);
- }
- Console.WriteLine("End of read");
- srd.Close();
- }
- public static void InputFile(string strFileName)
- {
- StreamWriter swt;
- try
- {
- swt = File.CreateText(strFileName);
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- Console.WriteLine("File not Write");
- return;
- }
- swt.WriteLine("chenhailong");
- swt.Close();
- }
C# Process 类的思考的更多相关文章
- 使用Process类重定向输出与错误时遇到的问题 (转)
程序中要调用外部程序cmd.exe执行一些命令行,并取得屏幕输出,使用了Process类,基本代码如下: Process process = new Process(); process.StartI ...
- C#的Process类调用第三方插件实现PDF文件转SWF文件
在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...
- 浅析Java.lang.Process类
一.概述 Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序). Process 类提供了执行从进程输入.执行输出到进程.等待进程完成.检查进程的 ...
- C#中Process类的使用
本文来自: http://www.cnblogs.com/kay/archive/2008/11/25/1340387.html Process 类的作用是对系统进程进行管理,我们使用Process类 ...
- C#的Process类的一些用法
c#之process类相关整理 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using Sys ...
- C#使用Process类调用外部程序(转)
在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程.一.启动进程实例 Process myProc ...
- C# Process类_进程_应用程序域与上下文之间的关系
进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.进程之间是相对独立的,一个进程无法直接访问另一个进程的数据(除非分布式),一个进程运行的失败也不会影响其他 ...
- c#之process类相关整理
一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using System.Manageme ...
- C#代码使用Process类调用SWFTools工具
一.Process类调用SWFTools工具将PDF文档转为swf文档 1 string cmdStr = "D:\\SWFTools\\pdf2swf.exe"; string ...
随机推荐
- memcache分布式部署的原理分析
下面本文章来给各位同学介绍memcache分布式部署的原理分析,希望此文章对你理解memcache分布式部署会有所帮助哦. 今天在封装memcache操作类库过程中,意识到一直以来对memcach ...
- Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...
- 通过库函数API和C代码中嵌入汇编代码剖析系统调用的工作机制
作者:吴乐 山东师范大学<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 本次实验的主要内容就是分别采用A ...
- 【原】Storm 入门教程目录
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- [微软实习生2014]K-th string
很久之前的事情了,微软2014实习生的在线测试题,记录下来以备后用. 题目描述: Description Consider a string set that each of them consist ...
- 使用Google Chart API绘制组合图
Google Chart API 绘图 组合图作者:方倍工作室 地址: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN& ...
- 基于easyui的验证扩展
基于easyui的验证扩展 ##前言 自己做项目也有好几年的时间了,一直没有时间整理自己的代码,趁春节比较闲,把自己以前的代码整理了一篇.这是基于easyui1.2.6的一些验证扩展,2012年就开始 ...
- Codeforces 372
A (被装的袋鼠不可以装的袋鼠)贪心,排序,从n/2分成两部分. B 好一道前缀和的题目. C 标准算法不难想,m^2的算法见http://codeforces.com/blog/entry/9907 ...
- 链表逆序(JAVA实现)
题目:将一个有链表头的单向单链表逆序 分析: 链表为空或只有一个元素直接返回: 设置两个前后相邻的指针p,q,使得p指向的节点为q指向的节点的后继: 重复步骤2,直到q为空: 调整链表头和链表尾: 图 ...
- 丁又专老师作业——Java检测代码
package com.util; import java.io.*; import java.util.regex.Pattern; /** * 代码统计工具 * 统计某个java源文件或某个目录中 ...