gpt4 book ai didi

简单掌握Windows中C#启动外部程序进程的方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章简单掌握Windows中C#启动外部程序进程的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

许多用户在程序开发过程中需要使用C#启动一个外部程序(进程),在使用完毕该外部程序后,又希望能将其关闭。我们特在此对C#启动和关闭外部进程的方法进行一个简单的介绍.

  C#启动外部程序(进程)有两种方法:一种是直接使用C#提供的Process类,利用类的函数操作来直接启动外部程序;另一种方法是使用传统的Win32 API函数CreateProcess来实现外部进程的启动.

  使用C#提供的Process类来启动外部程序方法比较简单,例举代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
}
 
  使用传统的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来实现外部程序的启动 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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进程
}

最后此篇关于简单掌握Windows中C#启动外部程序进程的方法的文章就讲到这里了,如果你想了解更多关于简单掌握Windows中C#启动外部程序进程的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com