我正在开发一个 C# 应用程序。
我需要创建变量并将其传递给一个新进程,我正在使用ProcessStartInfo.EnvironmentVariables.
新进程必须运行提升,所以我使用 Verb = "runas"
var startInfo =  new ProcessStartInfo(command)
{
    UseShellExecute = true,
    CreateNoWindow = true,
    Verb = "runas"
};
foreach (DictionaryEntry entry in enviromentVariables)
{
    startInfo.EnvironmentVariables.Add(entry.Key.ToString(), entry.Value.ToString());
}
问题是根据msdn 文档:
更改属性后,您必须将该
UseShellExecute属性设置为 false才能启动该过程EnvironmentVariables。如果UseShellExecute为 true,InvalidOperationException则在调用 Start 方法时抛出 an。
但该runas变量需要UseShellExecute=true
有没有办法做到这两点:以提升的方式运行进程并设置环境变量?
编辑
我会尝试改写我的问题...
有没有办法将参数安全地传递给另一个进程,这样只有另一个进程才能读取参数。