zoukankan      html  css  js  c++  java
  • C#之Process

    一、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:http://www.cnblogs.com/kissknife/archive/2009/09/07/1561629.html


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

    The native OS threads running in the current process are exposed through the Threads property of the Process 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();

    作者:Angelo Lee
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    window servet 2012 r2 配置php服务器环境
    thinkphp5 input坑
    tp5命名空间补充
    cookie和session
    thinkphp5.0 模型的应用
    JavaScript--计时器
    Runtime Only VS Runtime+Compil
    Object.keys
    [LeetCode 17]电话号码的字母组合
    数组里的字符串转换成数字或者把数字转换成字符串
  • 原文地址:https://www.cnblogs.com/yefengmeander/p/2887653.html
Copyright © 2011-2022 走看看