![](/img/trans.png)
[英]ProcessStartInfo.UseShellExecute = true and waiting for process exit
[英]What's the big deal with ProcessStartInfo.UseShellExecute?
ProcessStartInfo.UseShellExecute將如何影響我的運行進程?
我是否需要UAC對UseShellExecute的特殊權限?
它會在不同的用戶上運行嗎?
它會給我新的權限嗎?
Windows有兩個不同的api函數來啟動進程。 低級的是CreateProcess(),它直接映射到本機api函數。 還有ShellExecuteEx(),這是一個由shell(Explorer)實現的函數。 它具有更高的抽象級別。
它們是非常不同的功能,您可以在ProcessStartInfo的文檔中看到這些功能。 CreateProcess()只能啟動可執行文件,但它有很好的支持來控制控制台模式程序,包括重定向I / O和控制控制台窗口外觀的能力。 ShellExecuteEx()利用shell添加的功能,文件關聯是最重要的,因此您可以啟動為特定文件擴展名注冊的可執行文件。
兩個api函數都有選項來影響進程的執行方式。 您將看到ProcessStartInfo類的屬性與CreateProcess支持的Process Creation Flags以及ShellExecuteEx()使用的SHELLEXECUTEINFO結構中的字段之間存在密切關聯。 但這些功能不重疊,這就是為什么你需要修改UseShellExecute。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.