进程启动功能

本文关键字:功能 启动 进程 | 更新日期: 2023-09-27 18:32:17

Process.Start 方法是否调用底层 Windows API 函数 CreateProcess?

查看Microsoft文档,似乎Process.Start可以在C++或C#中使用,但CreateProcess只能在C++中使用。

我只是想确定一个函数是否利用另一个函数,以及这是否是 C# 与 C++ 中 API 调用的一般情况。

进程启动功能

它可以

调用 3 个可能的本机函数,具体取决于您传入StartInfo中的设置。

  • 如果UseShellExecute = true它将调用ShellExecuteEx
  • 如果UseShellExecute = false并且您设置了一个用户名,那么它将调用CreateProcessWithLogonW
  • 如果UseShellExecute = false并且您没有设置用户名,那么它将调用CreateProcess

您可以通过参考源自行遵循代码。

如果要直接调用CreateProcess(或任何本机函数),则需要执行"平台调用(P/Invoke)"。有一些网站可以帮助您找出常见函数的 P/Invoke 签名。这个过程要复杂得多,也更复杂,只是简单地使用Process.Start