.Net执行cmd获取系统信息

public string Test()
        {
            Stopwatch w = new Stopwatch();
            w.Start();
            StringBuilder sb = new StringBuilder();
            string str = RunCmdForJobs("systeminfo");
            string[] lines = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string line in lines)
            {
                string[] temp = line.Split(new string[] { ": " }, StringSplitOptions.RemoveEmptyEntries);
                if (temp.Length == 2)
                    sb.AppendFormat("{0}:{1}<br/>", temp[0], temp[1].Trim(' '));
                else if (temp.Length == 1)
                    sb.AppendFormat("{0}<br/>", temp[0]);
            }
            //sb.Append(str);
            w.Stop();
            sb.AppendFormat("用时(毫秒):{0}<br/>", w.ElapsedMilliseconds);
            return sb.ToString();

        }
        /// <summary>
        /// 执行cmd命令
        /// 多命令请使用批处理命令连接符:
        /// <![CDATA[
        /// &:同时执行两个命令
        /// |:将上一个命令的输出,作为下一个命令的输入
        /// &&:当&&前的命令成功时,才执行&&后的命令
        /// ||:当||前的命令失败时,才执行||后的命令]]>
        /// 其他请百度
        /// </summary>
        public static string RunCmdForJobs(string cmdText)
        {
            string strOutput = "";
            var cmd = cmdText + " &exit"; //说明:不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态
            using (var p = new System.Diagnostics.Process())
            {
                p.StartInfo.FileName = "C:\\Windows\\system32\\cmd.exe";
                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(cmd);
                p.StandardInput.AutoFlush = true;
                strOutput = p.StandardOutput.ReadToEnd();
                p.WaitForExit(); //等待程序执行完退出进程
                p.Close();
            }
            return strOutput;
        }

运行结果:

时间: 2024-12-27 09:21:14

.Net执行cmd获取系统信息的相关文章

在Visual C#中运用API函数获取系统信息

visual|函数 API函数是构筑Windows应用程序的基石,是Windows编程的必备利器.每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法,或者是调用Windows API函数的接口,也就是说具备调用动态连接库的能力.Visual C#和其它开发工具一样也能够调用动态链接库的API函数.本文中笔者就结合实例向大家介绍在Visual C#中如何调用各种返回值的API,该实例就是一个通过API函数调用获取系统信息的程序. 在Visual C#中调用

远程或本地获取系统信息的脚本RGIS.vbs_vbs

******************************************************************************* RGIS v1.03 Remote Get Infomation Script, by zzzEVAzzz Welcome to visite www.isgrey.com & www.h4h4.com Usage: cscript rgis.vbs [/r targetIP username password] [/o filename

在.NET中轻松获取系统信息(1) -WMI篇 Montaque(原作)

在.NET中轻松获取系统信息(1) -WMI篇    Montaque(原作)    关键字     WMI,WQL,ManagementObjectSearcher    在.NET中轻松获取系统信息(1) -WMI篇 Montaque 申明:     1.个人的一点心得,仅供参考    2.转载时候,请保留原本. 概述:        不知道大家有没有这种体会?有时候为了获取系统一点点信息,比如考虑一下操作系统的版本号,或者当前屏幕的分辨率.其实说到底就是读操作系统某个方面的一个属性值而已,

在.NET中轻松获取系统信息(1) -WMI篇

在.NET中轻松获取系统信息(1) -WMI篇 Montaque 申明: 1.个人的一点心得,仅供参考 2.转载时候,请保留原本. 概述: 不知道大家有没有这种体会?有时候为了获取系统一点点信息,比如考虑一下操作系统的版本号,或者当前屏幕的分辨率.其实说到底就是读操作系统某个方面的一个属性值而已,然后就看到我们的程序中密密麻麻的Win32 API申明,调用,代码的可读性和维护性不言而喻.到了.NET,微软提供了更为丰富的类,有很多以前要调用API的方法可以在.NET中轻而易举的调用实现.今天简单

《系统飞狐》中获取系统信息的方法

一.在我的系统设置软件<系统飞狐>中,应用到一个获取系统信息的源代码 ,在VC++中经过巧妙转换应用到我的软件中,取得了良好的效果,也许很多人都见过这个简单的获取系统信息的类sysinfo,在系统飞狐中充分扩展了它的功能 .该类首先需要编译一个DLL文件然后再调用它根据需要生成我们自己的应用程序. 图一 sysinfo界面 二.先编译DLL文件SysInfo.dll,然后在工程SysInfoTester中调用它,示例代码为DOS程序: //在头文件中先调用DLL文件 #if !defined(

javascript-js非IE内核浏览器上获取系统信息,包括CPU使用率。求解

问题描述 js非IE内核浏览器上获取系统信息,包括CPU使用率.求解 做Flash player,需要获取系统信息,想用js获取然后传递给AS3.js调用WMI,在非IE浏览器上没反应 解决方案 其他浏览器需要通过插件,比如FIREFOX Chrome都支持插件,然后通过插件来获取系统的CPU等信息

system命令-在代码中执行cmd命令如何不显示cmd

问题描述 在代码中执行cmd命令如何不显示cmd 在代码中执行system命令时,总有黑框一闪而过,怎样可以让他完全不显示 解决方案 shellexecute启动,showwindow参数设置为SW_HIDE 解决方案二: 直接执行那个命令,不要加上cmd.当然前提是那个命令本身不创建额外的控制台. 解决方案三: 如果用shellexecute执行cmd命令,的最后一个参数设置为SW_HIDE,隐藏窗口.shellexecuteex,createprocess也都可以设置 解决方案四: @ech

vc++-VC 执行cmd dos命令时 无法删除目录 和自身,自己手动打开生成的cmd 时删除成功

问题描述 VC 执行cmd dos命令时 无法删除目录 和自身,自己手动打开生成的cmd 时删除成功 生成的 cmd文件内容 rd .aaData del .aauninst.exe rd .aa del dele.cmd WinExec(strMyDir,SW_SHOW); //cmd 执行了 看到执行界面了 但是没有删除 ShellExecute(NULL,"open",strMyDir,NULL,NULL,SW_SHOW); // 这个函数 一样 cmd 执行了 看到执行界面了

C# 关于用进程执行cmd的net use的问题

问题描述 C# 关于用进程执行cmd的net use的问题 public string Connect(string remoteHost string userName string passWord) { string s = """"; if (!Ping(remoteHost)) { return s; } bool Flag = true; Process proc = new Process(); try { proc.StartInfo.FileNam