1、获取进程信息
代码:
Process[] processes = Process.GetProcesses();
long totalMemery = 0;
StringBuilder sbResult = new StringBuilder();
foreach (Process process in processes)
{
sbResult.AppendFormat("进程{0} 占内存{1}KB约合{2}MB\n", process.ProcessName, process.PrivateMemorySize64 / 1024,
(process.PrivateMemorySize64 / 1024)/1024);
totalMemery += process.PrivateMemorySize64 / 1024;
}
string result = string.Format("进程总数 {0} 个,共占内存:{1}MB \n", processes.Length, totalMemery / 1024)
+ sbResult.ToString();
MessageBox.Show(result);
2、执行DOS或批处理命令
代码:
public static string ExecuteCommand(string dosCommand, int milliseconds)
{
string output = ""; //输出字符串
if (dosCommand != null && dosCommand != "")
{
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C " + dosCommand; //设定参数,其中的"/C"表示执行完命令后马上退出
startInfo.UseShellExecute = false; //不使用系统外壳程序启动
startInfo.RedirectStandardInput = false; //不重定向输入
startInfo.RedirectStandardOutput = true; //重定向输出
startInfo.CreateNoWindow = true;
process.StartInfo = startInfo;
try
{
if (process.Start()) //开始进程
{
if (milliseconds == 0)
process.WaitForExit(); //这里无限等待进程结束
else
process.WaitForExit(milliseconds); //这里等待进程结束,等待时间为指定的毫秒
output = process.StandardOutput.ReadToEnd();//读取进程的输出
}
}
catch (Exception ex)
{
Trace.WriteLine("Exception:" + ex.Message + "\n" + ex.StackTrace);
}
finally
{
if (process != null)
process.Close();
}
}
return output;
}
}
调用:
ExecuteCommand("NET STOP MSSQL$SQLEXPRESS",3*1000);//停止sqlserver服务
ExecuteCommand("NET START MSSQL$SQLEXPRESS",3*1000);//重启sqlserver服务