欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

簡單掌握Windows中C#啟動外部程序進(jìn)程的方法

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

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

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

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

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

int myprocessID;  // 進(jìn)程ID

// 方法一:直接使用.Net提供的Process類來實現(xiàn)外部程序的啟動
private void openButton_Click(object sender, EventArgs e)
{
  Process myProcess = Process.Start('\\NandFlash\\SerialTST.exe', ''); // 啟動外部進(jìn)程
  myprocessID = myProcess.Id; // 獲得該外部進(jìn)程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)閉外部進(jìn)程的方法就是直接通過獲得的該外部進(jìn)程的ID來關(guān)閉它。這里只介紹使用.Net的Process類的方法:

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

上一篇:C#實現(xiàn)從多列的DataTable里取需要的幾列

欄    目:C#教程

下一篇:C#操作LINQ to SQL組件進(jìn)行數(shù)據(jù)庫建模的基本教程

本文標(biāo)題:簡單掌握Windows中C#啟動外部程序進(jìn)程的方法

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6635.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有