进程启动功能
本文关键字:功能 启动 进程 | 更新日期: 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
。