Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ProcessStartInfo动词运行方式不工作_C#_Wpf - Fatal编程技术网

C# ProcessStartInfo动词运行方式不工作

C# ProcessStartInfo动词运行方式不工作,c#,wpf,C#,Wpf,以下代码有什么问题 ProcessStartInfo startInfo = default(ProcessStartInfo); startInfo = new ProcessStartInfo(SetupProgramPath) { UseShellExecute = true, Verb = "runas", WindowStyle = ProcessWindowSty

以下代码有什么问题

        ProcessStartInfo startInfo = default(ProcessStartInfo);

        startInfo = new ProcessStartInfo(SetupProgramPath)
        {
            UseShellExecute = true,
            Verb = "runas",
            WindowStyle = ProcessWindowStyle.Normal,
            CreateNoWindow = false
        };

        Process.Start(startInfo); 
预计将提示输入凭据,但未显示任何内容。系统已启用UAC,不应更改。
我感谢你在这件事上的帮助。提前感谢。

如果您想让用户输入其他用户的凭据,请使用“runasuser”:


我已经用下面的代码解决了这个问题

ProcessStartInfo startInfo = default(ProcessStartInfo);

startInfo = new ProcessStartInfo(SetupProgramPath)
{
    UseShellExecute = true,
    Verb = "runas",
    WindowStyle = ProcessWindowStyle.Normal,
    FileName = "msiexec",
    Arguments = "/i \"" + SetupProgramPath + "\"",
    CreateNoWindow = false
};

Process.Start(startInfo); 

指定
=default(ProcessStartInfo)有什么意义当您在下一行覆盖它时`这似乎不是问题。我也可以删除它。程序启动了吗?没有。如果我禁用UAC,我就可以启动程序了。但是,不建议这样做。他们试图以管理员而不是用户的身份运行。谢谢您的帮助。不幸的是,它没有起作用。它既不提示输入凭据,也不启动安装程序。我的安装程序驻留在网络中我想“SetupProgramPath”的值是错误的。只需先尝试使用本地应用程序,如“calc.exe”。然后尝试将安装应用程序的路径用作字符串文本。如果可以,请尝试修复填充“SetupProgramPath”的代码。很抱歉打扰您。当我禁用UAC并删除Verb=“runasuser”或Verb=“runas”时,它的效果非常好。现在的问题是在启用UAC的情况下运行程序。我可以无错误地访问路径。它与“calc.exe”或“regedit.exe”一起工作吗?如果是,请告诉我们设置程序的特殊之处。如果没有,请向我们展示一个完整且最小的示例,因为在这里可以使用。因此,您最初忘记设置
文件名
,因此没有启动任何进程?这是
运行方式
对我实际起作用的唯一方式。手动设置它和shell,如
proc.StartInfo.Verb=“runas”不起作用。
ProcessStartInfo startInfo = default(ProcessStartInfo);

startInfo = new ProcessStartInfo(SetupProgramPath)
{
    UseShellExecute = true,
    Verb = "runas",
    WindowStyle = ProcessWindowStyle.Normal,
    FileName = "msiexec",
    Arguments = "/i \"" + SetupProgramPath + "\"",
    CreateNoWindow = false
};

Process.Start(startInfo);