成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C#如何使用相同權(quán)限調(diào)用cmd傳入命令

小編給大家分享一下C#如何使用相同權(quán)限調(diào)用cmd傳入命令,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了凌海免費(fèi)建站歡迎大家使用!

如何使用相同權(quán)限調(diào)用cmd并且傳入命令。

如果想要用相同的權(quán)限運(yùn)行一個(gè)程序,可以使用 ProcessStartInfo 的方法      

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

只需要設(shè)置 Verb = "runas" 就可以使用相同的權(quán)限運(yùn)行程序。

如何設(shè)置程序使用管理員權(quán)限運(yùn)行,請看

所以需要修改一下在 C# 調(diào)用 ProcessStartInfo 使用 cmd 并且傳入?yún)?shù)的方法    

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

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

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

 private static (string output, int exitCode) Control(string str)
  {
   var processStartInfo = new ProcessStartInfo()
   {
    Verb = "runas", // 如果程序是管理員權(quán)限,那么運(yùn)行 cmd 也是管理員權(quán)限
    FileName = "cmd.exe",
    UseShellExecute = false,
    RedirectStandardInput = true,
    RedirectStandardOutput = true,
    RedirectStandardError = true,
    CreateNoWindow = false, // 如果需要隱藏窗口,設(shè)置為 true 就不顯示窗口
    StandardOutputEncoding = Encoding.UTF8,
    Arguments = "/K " + str + " &exit",
   };
   var p = Process.Start(processStartInfo);
   //向cmd窗口發(fā)送輸入信息
   p.StandardInput.AutoFlush = true;
   //向標(biāo)準(zhǔn)輸入寫入要執(zhí)行的命令。這里使用&是批處理命令的符號,表示前面一個(gè)命令不管是否執(zhí)行成功都執(zhí)行后面(exit)命令,如果不執(zhí)行exit命令,后面調(diào)用ReadToEnd()方法會假死
   //同類的符號還有&&和||前者表示必須前一個(gè)命令執(zhí)行成功才會執(zhí)行后面的命令,后者表示必須前一個(gè)命令執(zhí)行失敗才會執(zhí)行后面的命令
   //獲取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); //等待程序執(zhí)行完退出進(jìn)程
   p.Close();
   int ec = 0;
   try
   {
    ec = p.ExitCode;
   }
   catch (Exception)
   {
   }
   return (output + "\r\n", ec);
  }

以上是“C#如何使用相同權(quán)限調(diào)用cmd傳入命令”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁標(biāo)題:C#如何使用相同權(quán)限調(diào)用cmd傳入命令
URL標(biāo)題:http://jinyejixie.com/article48/podeep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、App設(shè)計(jì)、用戶體驗(yàn)商城網(wǎng)站、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
微山县| 罗山县| 望江县| 大石桥市| 延庆县| 农安县| 济宁市| 景泰县| 镇沅| 景泰县| 阿拉善右旗| 民乐县| 海城市| 东乡| 德昌县| 略阳县| 谷城县| 大宁县| 龙州县| 电白县| 安徽省| 云龙县| 济宁市| 新和县| 凤阳县| 万年县| 湾仔区| 兴城市| 博野县| 义乌市| 都昌县| 马鞍山市| 安龙县| 黄平县| 广汉市| 秭归县| 泰宁县| 巴林左旗| 邢台市| 红河县| 汶上县|