国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C# 使用相同權限調用 cmd 傳入命令的方法

2019-10-29 19:59:46
字體:
來源:轉載
供稿:網友

本文告訴大家如何使用相同權限調用cmd并且傳入命令。

如果想要用相同的權限運行一個程序,可以使用 ProcessStartInfo 的方法      

 var processStartInfo = new ProcessStartInfo()   {    Verb = "runas", // 如果程序是管理員權限,那么運行 cmd 也是管理員權限    FileName = "cmd.exe",   };

只需要設置 Verb = "runas" 就可以使用相同的權限運行程序。

如何設置程序使用管理員權限運行,請看

所以需要修改一下在 C# 調用 ProcessStartInfo 使用 cmd 并且傳入參數的方法    

 var processStartInfo = new ProcessStartInfo()   {    Verb = "runas", // 如果程序是管理員權限,那么運行 cmd 也是管理員權限    FileName = "cmd.exe",    UseShellExecute = false,    RedirectStandardInput = true,    RedirectStandardOutput = true,    RedirectStandardError = true,    CreateNoWindow = false, // 如果需要隱藏窗口,設置為 true 就不顯示窗口    StandardOutputEncoding = Encoding.UTF8,    Arguments = "/K " + str + " &exit",   };   var p = Process.Start(processStartInfo);

這里傳入的 Arguments 需要使用 /K 或 /C 放在最前,不然 cmd 不會執行參數。

如果需要拿到輸出就需要用到其他的代碼,所有的代碼請看下面,代碼可以直接復制使用。

      

 private static (string output, int exitCode) Control(string str)  {   var processStartInfo = new ProcessStartInfo()   {    Verb = "runas", // 如果程序是管理員權限,那么運行 cmd 也是管理員權限    FileName = "cmd.exe",    UseShellExecute = false,    RedirectStandardInput = true,    RedirectStandardOutput = true,    RedirectStandardError = true,    CreateNoWindow = false, // 如果需要隱藏窗口,設置為 true 就不顯示窗口    StandardOutputEncoding = Encoding.UTF8,    Arguments = "/K " + str + " &exit",   };   var p = Process.Start(processStartInfo);   //向cmd窗口發送輸入信息   p.StandardInput.AutoFlush = true;   //向標準輸入寫入要執行的命令。這里使用&是批處理命令的符號,表示前面一個命令不管是否執行成功都執行后面(exit)命令,如果不執行exit命令,后面調用ReadToEnd()方法會假死   //同類的符號還有&&和||前者表示必須前一個命令執行成功才會執行后面的命令,后者表示必須前一個命令執行失敗才會執行后面的命令   //獲取cmd窗口的輸出信息   var output = "";   var task = p.StandardOutput.ReadToEndAsync();   task.Wait(2000);   if (task.IsCompleted)   {    output += task.Result;   }   task = p.StandardError.ReadToEndAsync();   task.Wait(2000);   if (task.IsCompleted)   {    output += task.Result;   }   Console.WriteLine(output);   p.WaitForExit(10000); //等待程序執行完退出進程   p.Close();   int ec = 0;   try   {    ec = p.ExitCode;   }   catch (Exception)   {   }   return (output + "/r/n", ec);  }

總結

以上所述是小編給大家介紹的C# 使用相同權限調用 cmd 傳入命令,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扎鲁特旗| 新建县| 苍山县| 瑞安市| 深州市| 桐柏县| 黑龙江省| 铁岭市| 邯郸市| 黄龙县| 溧水县| 进贤县| 海口市| 东明县| 沅陵县| 吴川市| 崇左市| 南乐县| 吐鲁番市| 恩平市| 博野县| 磴口县| 绍兴县| 牙克石市| 阜平县| 镇巴县| 手游| 应城市| 盐池县| 依兰县| 丰镇市| 砚山县| 娄烦县| 邹城市| 墨脱县| 荆门市| 勐海县| 崇明县| 林周县| 嘉鱼县| 濉溪县|