C# UAC并从记事本运行exe++;使用UseShellExecute

C# UAC并从记事本运行exe++;使用UseShellExecute,c#,notepad++,uac,runas,C#,Notepad++,Uac,Runas,我知道以前有人问过这个问题,但我还没有找到我的具体场景的答案,所以我很高兴能得到任何帮助 我正在编写一个Notepad++插件,其中用户单击一个按钮,一个exe文件开始在后台运行,使用: UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; 等等,我正在将输出重定向到NPP窗口 现在,由于我在运行这个exe时遇到了问题,我终于找

我知道以前有人问过这个问题,但我还没有找到我的具体场景的答案,所以我很高兴能得到任何帮助

我正在编写一个Notepad++插件,其中用户单击一个按钮,一个exe文件开始在后台运行,使用:

UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.RedirectStandardError = true;
等等,我正在将输出重定向到NPP窗口

现在,由于我在运行这个exe时遇到了问题,我终于找到了问题所在。著名的UAC

因为我在工作站上运行它(他们的用户不是管理员),有没有办法在后台运行这个exe文件(带参数),而不看到shell窗口,因为如果显示shell窗口,我就无法将其输出重定向到NPP(对吗?),因为一些“黑客”克服了管理员问题

据我所知,使用
verb=“runas”
无法处理
UseShellExecute=false
,因此基本上它的意思是,如果我想从记事本++内成功运行此exe文件,我无法将其输出重定向到记事本++

我注定了吗?我的项目失败了吗

请帮忙


谢谢

如果未提供管理员凭据,则无法从UAC下的非提升进程启动提升进程。如果可以,这将是任何恶意软件都可能利用的一个重大安全漏洞。事实上,你的问题是关于一个NPP插件的,但这并不能改变再次被问到同样问题的事实。(我看到了关于添加两个名为a和b的int变量的问题,但我的变量是x和y。)这在这里已经被问过几十次了。绕过UAC的尝试总是失败的,并且总是表明您的设计中存在致命缺陷。好的。谢谢。我还将尝试将数据输出到外部文件,而不是将其发送回NPP。如果将另一个exe进程放入.bat中,然后将输出重定向到(比如)文件,会怎么样。然后将其作为cmd行运行,然后读取文件?