博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#之Process
阅读量:4322 次
发布时间:2019-06-06

本文共 1653 字,大约阅读时间需要 5 分钟。

一、C#中利用process类调用外部程序以及执行dos命令

c#中的Process类可方便的调用外部程序,所以可以通过调用cmd.exe程序加入参数 "/c " + 要执行的命令来执行一个dos命令

(/c代表执行参数指定的命令后关闭cmd.exe /k参数则不关闭cmd.exe)

class ExampleOfLegalsoft{	 private string RunCmd(string command)	 {		  //實例一個Process類,啟動一個獨立進程		  Process p = new Process();		  //Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性:		  p.StartInfo.FileName = "cmd.exe";			  //設定程序名		  p.StartInfo.Arguments = "/c " + command;	 //設定程式執行參數		  p.StartInfo.UseShellExecute = false;		  //關閉Shell的使用		  p.StartInfo.RedirectStandardInput = true;	//重定向標準輸入		  p.StartInfo.RedirectStandardOutput = true;  //重定向標準輸出		  p.StartInfo.RedirectStandardError = true;	//重定向錯誤輸出		  p.StartInfo.CreateNoWindow = true;			 //設置不顯示窗口		  p.Start();	//啟動		  //p.StandardInput.WriteLine(command);		 //也可以用這種方式輸入要執行的命令		  //p.StandardInput.WriteLine("exit");		  //不過要記得加上Exit要不然下一行程式執行的時候會當機		  return p.StandardOutput.ReadToEnd();		  //從輸出流取得命令執行結果	 }}

二、Process.WaitForExit() and Deadlock

Link:

三、C# Getting Current Native Thread (操作系统进程线程)

The native OS threads running in the current process are exposed through the property of the class. Please note that this is not the same as a managed thread, these are the actual native threads running on the operating system.

In order to get a pointer to the current executing thread, we must use P/Invoke. Here's how we do it:

[DllImport("kernel32.dll")]
publicstaticexternUInt32 GetCurrentThreadId();
 
UInt32 id = GetCurrentThreadId();
ProcessThread thread = Process.GetCurrentProcess().Threads.Cast<processthread>().Where(t => t.Id == id).Single();

转载于:https://www.cnblogs.com/yefengmeander/archive/2011/11/17/2887653.html

你可能感兴趣的文章
css实现简单几何图形
查看>>
asp.net 2.0中实现异步处理任务.
查看>>
Java Cryptography Extension (JCE): 放开Java加密算法密钥最大长度16的限制
查看>>
苹果一体机发射Wi-Fi
查看>>
Unity3d使用未破解的TexturePacker
查看>>
一个菜鸟的总结
查看>>
20145309信息安全系统设计基础第9周学习总结上
查看>>
c# 字段、属性get set
查看>>
C#与C++交互的一些基础
查看>>
HTML前端--各种小案例
查看>>
tornado 添加请求头进行允许跨域
查看>>
confluence + 禅道安装教程
查看>>
td内容超出隐藏
查看>>
Spring CommonsMultipartResolver 上传文件
查看>>
Settings app简单学习记录
查看>>
SQLAlchemy
查看>>
多线程
查看>>
使用缓存的9大误区(下)转载
查看>>
appium键值对的应用
查看>>
MyEclipse 8.X 通用算法
查看>>