gpt4 book ai didi

windows - Shellexecute 是否会与启动进程共享环境变量

转载 作者:可可西里 更新时间:2023-11-01 09:34:27 25 4
gpt4 key购买 nike

程序 1 使用 SetEnvironment 并调用 ShellExecute 来启动程序 2。程序 2 调用 GetEnvironment 并从中检索值。令人惊讶的是,正如我在 MSDN 中读到的那样,这是有效的,SetEnvironment 是特定于过程的(至少在我的情况下)。 ShellExecute 是否在内部调用 CreateProcess(作为子进程),后者又允许程序 2 访问在程序 1 中创建和设置的 ENV 变量....我使用 SetEnvironment 创建和使用与 Windows 用户和系统变量完全不同的 ENV 变量。

最佳答案

它将共享环境,但不会在提升运行时共享环境 (verb="runas")。

然后您需要创建一个中间包装器应用程序(已提升),在使用 CreateProcess() 或类似方法重新启动之前设置环境。

这是因为非特权用户可能会更改 PATH 以指向不良内容(带有恶意 DLL 的目录),然后提升的应用程序将面临风险,因此必须明确解决此问题。

关于windows - Shellexecute 是否会与启动进程共享环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17100920/

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