实际上可以直接用Process执行exe,然后把输出流重定向一下,就可以直接读输出的内容了。
批处理执行是异步的,Thread.Sleep(2000)也不保准,反而是用Process的WaitForExit相对靠谱一点。
WMIC,是一款新出现在WindowsServer
2003中的命令行管理工具。使用WMIC,你不但可以管理本地计算机,而且可以管理同一Windows域内的所有远程计算机(需要必要的权限),而被管理的远程计算机不必事先安装WMIC,只需要支持WMI即可。
WMIC有一个能够分析、解释和执行从命令行接收的别名(Alias)的引擎,它是一个可执行文件,名为WMIC.exe,这个文件通常位于"c:\windows\
system32\wbem"文件夹中,该程序运行于用户当前登录的计算机上。任何对WMIC命令行的扩展性能都经过别名文件定义或者注册。别名又称友好名称(Friendly
Names),通过MOF(Management
Object
Format,管理对象格式)格式定义。WMIC引擎接收到输入的命令后,先进行分析。如果命令是一个别名,WMIC会从当前 *** 作命名空间(比如root\cli)调用该别名的定义,应用当前的环境设置(如目标命名空间),并将别名命令与它的原始命令进行对应,然后执行。
利用wmic获取cpu使用率看到一个程序通过wmic process get Caption,KernelModeTime,UserModeTime命令来
获取所有进程的KernelModeTime和UserModeTime。
算出所有进程的 (KernelModeTime总和 + UserModeTime总和),作为allPorcessTime1;
算出System Idle Process进程和System进程的 (KernelModeTime总和 + UserModeTime总和),作为systemProcessTime1;
隔几秒后,再次调用wmic命令,再次获取allPorcessTime2和systemProcessTime2;
然后,
busyTime = allPorcessTime2 - allPorcessTime1
idleTime = systemProcessTime2 - systemProcessTime1
cpu使用率 = 100 * (busyTime) / (busyTime + idleTime)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)