static void Fun() { while (true) { try { string str = Console.ReadLine(); Process p = new Process(); // p = Process.Start("cmd"); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = "C:\\Windows\\System32\\cmd.exe"; p.StartInfo.Verb = "RunAs"; p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动 p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息 p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息 p.StartInfo.RedirectStandardError = true;//重定向标准错误输出 p.StartInfo.CreateNoWindow = true;//不显示程序窗口 p.Start();//启动程序 // 向cmd窗口发送输入信息 p.StandardInput.WriteLine(str); p.StandardInput.WriteLine("exit"); p.StandardInput.AutoFlush = true; //p.StandardInput.WriteLine("exit"); //向标准输入写入要执行的命令。这里使用&是批处理命令的符号,表示前面一个命令不管是否执行成功都执行后面(exit)命令,如果不执行exit命令,后面调用ReadToEnd()方法会假死 //同类的符号还有&&和||前者表示必须前一个命令执行成功才会执行后面的命令,后者表示必须前一个命令执行失败才会执行后面的命令 //获取cmd窗口的输出信息 string output = p.StandardOutput.ReadToEnd(); p.WaitForExit();//等待程序执行完退出进程 p.Close(); Console.WriteLine(output); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
关于网上的很多办法我都试了 包括修改APP.maifest的办法。有人能解答一下吗?
测试了下 是可以的,好坑,把自己的网搞断了
看下是不是你自己的账号权限问题
嗯嗯 知道了 可以的 谢谢你啦
这个要怎么结贴呢选择满意答案
@华然: 额 仔细看看,有个结贴 很好找的
看下我的文章
http://www.cnblogs.com/ryhan/p/4195693.html
原因:VS IDE 权限不够(生成的产物权限也会不够),提升UAC权限即可解决
步骤:
1.选中对应Project,右键添加->新增应用程序清单文件 app.manifest
2.将配置项 requestedExecutionLevel 的级别 asInvoker 改为 requireAdministrator
3.启动调试,会使用超级权限重启IDE