最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

int myprocessID;  // 進程ID

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

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

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

#region Win32 API CreateProcess函數(shù)聲明做函數(shù)申明。
[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來實現(xiàn)外部程序的啟動

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
}

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

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

相關(guān)文章

  • c# 適配器模式

    c# 適配器模式

    適配器模式:將一個類的接口轉(zhuǎn)換成客戶希望的另一個接口,Adapter使原本由于接口不兼容而不能一起工作的那些類可以一起工作
    2012-10-10
  • 利用WinForm實現(xiàn)上左右布局的方法詳解

    利用WinForm實現(xiàn)上左右布局的方法詳解

    現(xiàn)在90%的管理系統(tǒng)都是在用上左右這種布局方式,真可謂是經(jīng)典永流傳。本文將利用WinForm實現(xiàn)上左右布局這一布局效果,感興趣的可以學(xué)習(xí)一下
    2022-09-09
  • C#使用Log4.net記錄日志文件

    C#使用Log4.net記錄日志文件

    這篇文章介紹了C#使用Log4.net記錄日志文件的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#利用iTextSharp組件給PDF文檔添加圖片/文字水印

    C#利用iTextSharp組件給PDF文檔添加圖片/文字水印

    這篇文章主要給大家介紹了關(guān)于如何C#利用iTextSharp組件給PDF文檔添加圖片/文字水印的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • C# XML文件操作之相機參數(shù)保存和讀取

    C# XML文件操作之相機參數(shù)保存和讀取

    XML是可擴展標記語言是一種數(shù)據(jù)語言,它將數(shù)據(jù)以一種簡單的文本格式存儲,可以被人類和幾乎任何計算機理解。本文將利用C#實現(xiàn)相機參數(shù)讀取并保存至XML文件,感興趣的可以學(xué)習(xí)一下
    2022-11-11
  • Unity中Instantiate實例化物體卡頓問題的解決

    Unity中Instantiate實例化物體卡頓問題的解決

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)離線計時器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • C#開發(fā)中的垃圾回收機制簡析

    C#開發(fā)中的垃圾回收機制簡析

    這篇文章主要為大家詳細介紹了C#開發(fā)中的垃圾回收機制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-10-10
  • c# AcceptEx與完成端口(IOCP)結(jié)合的示例

    c# AcceptEx與完成端口(IOCP)結(jié)合的示例

    這篇文章主要介紹了c# AcceptEx與完成端口(IOCP)結(jié)合的示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C# 忽略大小寫進行字符串比較

    C# 忽略大小寫進行字符串比較

    這篇文章主要介紹了C# 字符串比較忽略大小寫的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-02-02
  • 解決C# winForm自定義鼠標樣式的兩種實現(xiàn)方法詳解

    解決C# winForm自定義鼠標樣式的兩種實現(xiàn)方法詳解

    本篇文章是對在C#中winForm自定義鼠標樣式的兩種實現(xiàn)方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論

收藏| 西乌珠穆沁旗| 平果县| 古交市| 洪雅县| 婺源县| 滨州市| 蓬安县| 潼关县| 门头沟区| 合川市| 叙永县| 三江| 奎屯市| 杨浦区| 莆田市| 鄂州市| 彝良县| 高唐县| 遂溪县| 富平县| 星子县| 曲沃县| 伽师县| 满城县| 盐源县| 兰考县| 兴山县| 南丹县| 绥芬河市| 新邵县| 通海县| 威海市| 霍林郭勒市| 古浪县| 凤凰县| 辽阳县| 甘肃省| 岑溪市| 渝中区| 泸水县|