欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單掌握Windows中C#啟動外部程序進程的方法

 更新時間:2016年03月17日 17:11:52   投稿:goldensun  
這篇文章主要介紹了Windows中C#啟動外部程序進程的方法,例子中同時包括了進程關閉的方法,需要的朋友可以參考下

許多用戶在程序開發(fā)過程中需要使用C#啟動一個外部程序(進程),在使用完畢該外部程序后,又希望能將其關閉。我們特在此對C#啟動和關閉外部進程的方法進行一個簡單的介紹。

  C#啟動外部程序(進程)有兩種方法:一種是直接使用C#提供的Process類,利用類的函數操作來直接啟動外部程序;另一種方法是使用傳統(tǒng)的Win32 API函數CreateProcess來實現外部進程的啟動。

  使用C#提供的Process類來啟動外部程序方法比較簡單,例舉代碼如下:

using System.Diagnostics; // 包含了Process類的定義

int myprocessID;  // 進程ID

// 方法一:直接使用.Net提供的Process類來實現外部程序的啟動
private void openButton_Click(object sender, EventArgs e)
{
  Process myProcess = Process.Start('\\NandFlash\\SerialTST.exe', ''); // 啟動外部進程
  myprocessID = myProcess.Id; // 獲得該外部進程ID
}

  使用傳統(tǒng)的Win32 API函數的方法相對復雜,代碼如下:

using System.Runtime.InteropServices;  // 使用外部Win32 API

#region Win32 API CreateProcess函數聲明做函數申明。
[DllImport('coredll.Dll', EntryPoint = 'CreateProcess', SetLastError = true)]
extern static int CreateProcess(string strImageName, string strCmdLine,
                     IntPtr pProcessAttributes, IntPtr pThreadAttributes,
                       int bInheritsHandle, int dwCreationFlags,
               IntPtr pEnvironment, IntPtr pCurrentDir,
               IntPtr bArray, ProcessInfo oProc);

public class ProcessInfo
{
  public int hProcess;
  public int hThread;
  public int ProcessID;
  public int ThreadID;
}
#endregion

方法二:使用Win32 API來實現外部程序的啟動

private void openButton_Click(object sender, EventArgs e)
{
  ProcessInfo pi = new ProcessInfo();
  CreateProcess('\\NandFlash\\SerialTST.exe', '', IntPtr.Zero, IntPtr.Zero, 
          0, 0, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, pi);
  myprocessID = pi.ProcessID;      // 得到該程序的ID
}

  關閉外部進程的方法就是直接通過獲得的該外部進程的ID來關閉它。這里只介紹使用.Net的Process類的方法:

// 關閉外部進程
private void closeButton_Click(object sender, EventArgs e)
{
  Process myProcessA = Process.GetProcessById(myprocessID);   // 通過ID關聯進程
  myProcessA.Kill();          // kill進程
}

相關文章

  • C#實現的ZPL條碼打印類完整實例

    C#實現的ZPL條碼打印類完整實例

    這篇文章主要介紹了C#實現的ZPL條碼打印類,結合實例形式詳細分析了C#實現條碼打印的原理與使用方法,代碼注釋中備有詳盡的說明,便于理解使用,需要的朋友可以參考下
    2016-06-06
  • C#中dotnetcharting的用法實例詳解

    C#中dotnetcharting的用法實例詳解

    這篇文章主要介紹了C#中dotnetcharting的用法,以實例形式詳細分析了基于dotnetcharting的圖表繪制的各種常用方法,是非常實用的技巧,需要的朋友可以參考下
    2014-10-10
  • 基于C#實現串口通信

    基于C#實現串口通信

    這篇文章主要為大家詳細介紹了基于C#實現串口通信,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 使用NOPI讀取Word、Excel文檔內容

    使用NOPI讀取Word、Excel文檔內容

    這篇文章主要為大家詳細介紹了使用NOPI讀取Word、Excel文檔內容的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • C#中反射和擴展方法如何運用

    C#中反射和擴展方法如何運用

    這篇文章主要為大家詳細介紹了C#中反射和擴展方法的運用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#使用哈希表實現XML文件查詢

    C#使用哈希表實現XML文件查詢

    這篇文章主要為大家詳細介紹了C#如何使用哈希表實現XML文件查詢功能,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考下
    2024-02-02
  • C#中實現輸入漢字獲取其拼音(漢字轉拼音)的2種方法

    C#中實現輸入漢字獲取其拼音(漢字轉拼音)的2種方法

    這篇文章主要介紹了C#中實現輸入漢字獲取其拼音(漢字轉拼音)的2種方法,本文分別給出了使用微軟語言包、手動編碼實現兩種實現方式,需要的朋友可以參考下
    2015-01-01
  • C#中的預定義類型與引用類型

    C#中的預定義類型與引用類型

    這篇文章介紹了C#中的預定義類型與引用類型,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#類和結構詳解

    C#類和結構詳解

    本文詳細講解了C#中的類和結構,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • 淺談C#中HttpWebRequest與HttpWebResponse的使用方法

    淺談C#中HttpWebRequest與HttpWebResponse的使用方法

    本篇文章主要介紹了淺談C#中HttpWebRequest與HttpWebResponse的使用方法,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01

最新評論