C# 开始创建一个弹出窗口

C# 开始创建一个弹出窗口,c#,process,C#,Process,我有一个exe,它运行一个进程来打开DeviceManager。但不幸的是,它要求确认提供“是”或“否”,这将等待用户输入很长时间,并且不会继续执行 如何摆脱这个?我不想再次提供确认,因为我不想使用此命令暂停EXE运行 StartInfo.CreateWindow=false将不适用于此,因为它仅适用于在另一个cmd窗口中启动 代码如下: Process p = new Process(); p.StartInfo.FileName = "devcon.exe"; p.StartInfo.Cre

我有一个exe,它运行一个进程来打开DeviceManager。但不幸的是,它要求确认提供“是”或“否”,这将等待用户输入很长时间,并且不会继续执行

如何摆脱这个?我不想再次提供确认,因为我不想使用此命令暂停EXE运行

StartInfo.CreateWindow=false将不适用于此,因为它仅适用于在另一个cmd窗口中启动

代码如下:

Process p = new Process();
p.StartInfo.FileName = "devcon.exe";
p.StartInfo.CreateNoWindow = false;
p.Start();

父进程应通过管理员帐户运行。
请同时显示所有代码。

您看到的消息框是(用户帐户控制),它是从Vista开始实施的

要绕过此框,您可以在启动流程之前尝试以编程方式提供凭据,我无法测试,但类似于以下内容:

var processInfo = new ProcessStartInfo 
{ 
    FileName = "devcon.exe", 
    UserName = "Administrator", 
    Domain = "yourdomain or leave blank", 
    Password = adminpassword, 
    UseShellExecute = false,
}; 
Process.Start(processInfo);
否则,用户必须拥有管理员权限或密码


另一种选择是禁用UAC。然而,这不允许用户做任何他们不能正常做的事情,它可能会告诉您,如果没有以管理员身份运行的流程,您无法进行任何更改。

是/否对话框询问什么?权限?你在用什么操作系统?在Windows Vista中,它有一个称为UAC的机制,因此它会要求用户确认是否像这样运行任务!迟早,用户必须至少通过一次弹出对话框。是/否框-权限框我的意思是。我使用的是Win7操作系统,所以我应该禁用UAC。我可以做些什么来更好地避免此弹出窗口,同时打开DeviceManager。