C#中隱式運(yùn)行CMD命令行窗口的方法
MS的CMD命令行是一種重要的操作界面,一些在C#中不那么方便完成的功能,在CMD中幾個(gè)簡(jiǎn)單的命令或許就可以輕松搞定,如果能在C#中能完成CMD窗口的功能,那一定可以使我們的程序簡(jiǎn)便不少。
下面介紹一種常用的在C#程序中調(diào)用CMD.exe程序,并且不顯示命令行窗口界面,來完成CMD中各種功能的簡(jiǎn)單方法。
如下所示:
System.Diagnosties.Process p=new System.Diagnosties.Process();
p.StartInfo.FileName="cmd.exe";//要執(zhí)行的程序名稱
p.StartInfo.UseShellExecute=false;
p.StartInfo.RedirectStanderInput=true;//可能接受來自調(diào)用程序的輸入信息
p.StartInfo.RedirectStanderOutput=true;//由調(diào)用程序獲取輸出信息
p.StartInfo.CreateNoWindow=true;//不顯示程序窗口
p.Start();//啟動(dòng)程序
//向CMD窗口發(fā)送輸入信息:
p.StanderInput.WriteLine("shutdown -r t 10"); //10秒后重啟(C#中可不好做哦)
//獲取CMD窗口的輸出信息:
string sOutput = p.StandardOutput.ReadToEnd();有啦以下代碼,就可以神不知鬼不覺的操作CMD啦??傊琍rocess類是一個(gè)非常有用的類,它十分方便的利用第三方的程序擴(kuò)展了C#的功能。
詳細(xì)源碼如下:
using System;
using System.Diagnostics;
namespace Business
{
/// <summary>
/// Command 的摘要說明。
/// </summary>
public class Command
{
private Process proc = null;
/// <summary>
/// 構(gòu)造方法
/// </summary>
public Command()
{
proc = new Process();
}
/// <summary>
/// 執(zhí)行CMD語句
/// </summary>
/// <param name="cmd">要執(zhí)行的CMD命令</param>
public void RunCmd(string cmd)
{
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.StandardInput.WriteLine(cmd);
proc.Close();
}
/// <summary>
/// 打開軟件并執(zhí)行命令
/// </summary>
/// <param name="programName">軟件路徑加名稱(.exe文件)</param>
/// <param name="cmd">要執(zhí)行的命令</param>
public void RunProgram(string programName,string cmd)
{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = programName;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
if (cmd.Length != 0)
{
proc.StandardInput.WriteLine(cmd);
}
proc.Close();
}
/// <summary>
/// 打開軟件
/// </summary>
/// <param name="programName">軟件路徑加名稱(.exe文件)</param>
public void RunProgram(string programName)
{
this.RunProgram(programName,"");
}
}
}
調(diào)用時(shí)
Command cmd = new Command();
cmd.RunCmd("dir");
獲取輸出信息應(yīng)注意:
ReadtoEnd()容易卡?。?/P>
[csharp] view plaincopyprint?string outStr = proc.StandardOutput.ReadtoEnd();
string outStr = proc.StandardOutput.ReadtoEnd();
更傾向于使用ReadLine():
[csharp] view plaincopyprint?string tmptStr = proc.StandardOutput.ReadLine();
string outStr = "";
while (tmptStr != "")
{
outStr += outStr;
tmptStr = proc.StandardOutput.ReadLine();
}
- C# 執(zhí)行CMD命令并接收返回結(jié)果的操作方式
- C# 調(diào)用命令行執(zhí)行Cmd命令的操作
- C# 使用相同權(quán)限調(diào)用 cmd 傳入命令的方法
- C#隱式運(yùn)行CMD命令(隱藏命令窗口)
- C#調(diào)用CMD命令實(shí)例
- c#通過進(jìn)程調(diào)用cmd判斷登錄用戶權(quán)限代碼分享
- C# cmd中修改顯示(顯示進(jìn)度變化效果)的方法
- C#中調(diào)用命令行cmd開啟wifi熱點(diǎn)的實(shí)例代碼
- 通過C#調(diào)用cmd來修改服務(wù)啟動(dòng)類型
- 在asp.net(c#)下實(shí)現(xiàn)調(diào)用cmd的方法
- C#程序調(diào)用cmd.exe執(zhí)行命令
相關(guān)文章
利用C#實(shí)現(xiàn)將小數(shù)值四舍五入為整數(shù)
在項(xiàng)目的開發(fā)中,遇到一些除法計(jì)算內(nèi)容會(huì)產(chǎn)生小數(shù)值,但是又需要根據(jù)項(xiàng)目的實(shí)際情況將這些小數(shù)內(nèi)容化為整數(shù),所以本文為大家整理了C#實(shí)現(xiàn)將小數(shù)值四舍五入為整數(shù)的方法,希望對(duì)大家有所幫助2023-07-07
C#設(shè)計(jì)模式之Strategy策略模式解決007大破密碼危機(jī)問題示例
這篇文章主要介紹了C#設(shè)計(jì)模式之Strategy策略模式解決007大破密碼危機(jī)問題,簡(jiǎn)單描述了策略模式的定義并結(jié)合加密解密算法實(shí)例分析了C#策略模式的具體使用方法,需要的朋友可以參考下2017-09-09
C#設(shè)置Word文檔背景的三種方法(純色/漸變/圖片背景)
本文給大家分享三種添加Word文檔背景的方法,非常不錯(cuò),代碼簡(jiǎn)單易懂,具有參考借鑒價(jià)值,需要的朋友參考下吧2018-03-03
C#截取中英文混合指定長(zhǎng)度字符串實(shí)例
這篇文章主要介紹了C#截取中英文混合指定長(zhǎng)度字符串,大家參考使用2013-12-12
C# Xamarin利用ZXing.Net.Mobile進(jìn)行掃碼的方法
這篇文章主要介紹了C# Xamarin利用ZXing.Net.Mobile進(jìn)行掃碼的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
基于C#實(shí)現(xiàn)簡(jiǎn)單的二維碼和條形碼的生成工具
這篇文章主要為大家詳細(xì)介紹了如何基于C#實(shí)現(xiàn)簡(jiǎn)單的二維碼和條形碼工具,用于二維碼條形碼的生成與識(shí)別,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12

