首页 新闻 会员 周边 捐助

C#如何以管理员权限调用DOS的问题

0
悬赏园豆:200 [已解决问题] 解决于 2015-08-19 17:54

  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的办法。有人能解答一下吗?

 

 
华然的主页 华然 | 初学一级 | 园豆:10
提问于:2015-08-18 14:53
< >
分享
最佳答案
0

测试了下 是可以的,好坑,把自己的网搞断了

看下是不是你自己的账号权限问题

收获园豆:150
风醉 | 小虾三级 |园豆:1197 | 2015-08-18 16:24

嗯嗯  知道了 可以的 谢谢你啦

华然 | 园豆:10 (初学一级) | 2015-08-19 14:31

这个要怎么结贴呢选择满意答案

华然 | 园豆:10 (初学一级) | 2015-08-19 14:35

@华然: 额 仔细看看,有个结贴 很好找的

风醉 | 园豆:1197 (小虾三级) | 2015-08-19 15:11
其他回答(2)
0
收获园豆:50
爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-18 14:57

我试过啦  现在怎么办呢

支持(0) 反对(0) 华然 | 园豆:10 (初学一级) | 2015-08-18 15:00
0

看下我的文章

http://www.cnblogs.com/ryhan/p/4195693.html

 

  原因:VS IDE 权限不够(生成的产物权限也会不够),提升UAC权限即可解决

  步骤:

    1.选中对应Project,右键添加->新增应用程序清单文件 app.manifest

    2.将配置项 requestedExecutionLevel 的级别 asInvoker 改为 requireAdministrator

    3.启动调试,会使用超级权限重启IDE

ryhan | 园豆:202 (菜鸟二级) | 2015-08-24 17:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册