远程与本地的磁盘使用情况与进程监控
本地磁盘:
//long totalSize = new long();
//str_HardDiskName = str_HardDiskName + ":\\";
//System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
//foreach (System.IO.DriveInfo drive in drives)
//{
// if (drive.Name == str_HardDiskName)
// {
// totalSize = drive.TotalSize / (1024 * 1024 * 1024);
// }
//}
//return totalSize;
远程监控磁盘使用情况:
long mb = 1048576;
//1024x1024
//设定生成的WMI所需的所有设置
System.Management.ConnectionOptions Conn = new ConnectionOptions();
//设定用于WMI连接操作的用户名
Conn.Username = "Administrator";
//设定用户的口令
Conn.Password = "ohmydear";
//设定用于执行WMI操作的范围
System.Management.ManagementScope Ms = new ManagementScope("\\\\" + "10.0.0.254" + "\\root\\cimv2", Conn);
try
{
//连接到实际操作的WMI范围
Ms.Connect();
//设定通过WMI要查询的内容
ObjectQuery Query = new ObjectQuery("select FreeSpace ,Size ,Name from Win32_LogicalDisk where DriveType=3");
//WQL语句,设定的WMI查询内容和WMI的操作范围,检索WMI对象集合
ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Query);
//异步调用WMI查询
ManagementObjectCollection ReturnCollection = Searcher.Get();
double free = 0;
double use = 0;
double total = 0;
//listBox1.Items.Clear ( ) ;
//通过对产生的WMI的实例集合进行检索,获得硬盘信息
foreach (ManagementObject Return in ReturnCollection)
{
if (Return["Name"].ToString() == "D:")
{
//获得硬盘的可用空间
free = Convert.ToInt64(Return["FreeSpace"]) / mb;
//获得硬盘的已用空间
use = (Convert.ToInt64(Return["Size"]) - Convert.ToInt64(Return["FreeSpace"])) / mb;
//获得硬盘的合计空间
total = Convert.ToInt64(Return["Size"]) / mb;
}
}
}
catch (Exception ee)
{
//MessageBox.Show ( "连接" + textBox1.Text + "出错,出错信息为:" + ee.Message ,"出现错误!" ) ;
}
//查看本地进程运行状况
foreach (Process[] thisproc in System.Diagnostics.Process.GetProcesses("10.0.0.147"))
{
if (thisproc.ProcessName == "Foxmail")
{
result = true;
break;
}
else if (thisproc.ProcessName == "QQ")
{
result = true;
}
else
{
result = false;
}
}
//远程查看计算机的服务运行状况
public bool FindProcess(string ProcessName)
{
bool result = false;
System.Management.ConnectionOptions Conn = new ConnectionOptions();
//设定用于WMI连接操作的用户名
Conn.Username = "Administrator";
//设定用户的口令
Conn.Password = "ohmydear";
//设定用于执行WMI操作的范围
System.Management.ManagementScope Ms = new ManagementScope("\\\\" + "10.0.0.254" + "\\root\\cimv2", Conn);
try
{
//连接到实际操作的WMI范围
Ms.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Process");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(Ms, query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementObject m in queryCollection)
{
if (m["Name"].ToString() == "oracle.exe")
{
result = true;
break;
}
else if (m["Name"].ToString() == "java.exe")
{
result = true;
}
else
{
result = false;
}
}
}
catch (Exception e)
{
throw e;
}
return result;
}