Process.Start方法是否调用底层Windows API函数CreateProcess?
查看Microsoft文档,Process.Start可以在C ++或C#中使用,但CreateProcess只能在C ++中使用。
我只是想确定一个函数是否利用了另一个函数,以及这是否是C#与C ++中API调用的一般情况。
答案 0 :(得分:1)
根据您传入的StartInfo
中的设置,可以调用3种可能的本机函数。
UseShellExecute = true
,则会调用ShellExecuteEx
。UseShellExecute = false
并且您设置了用户名,则会调用CreateProcessWithLogonW
。UseShellExecute = false
并且您未设置用户名,则会调用CreateProcess
。您可以通过reference source。
自行关注代码如果您想直接致电CreateProcess
(或任何原生功能),则需要执行" Platform Invoke (P/Invoke)"。有些网站可以帮助您找出P / Invoke签名for common functions。这个过程要复杂得多,只需要使用Process.Start
。