Здравствуйте, eccentric, Вы писали:
E>Подскажите, как программно узнать загрузку процессора в данный момент времени на удаленном компе?
Прикольная штука: Performance Counters... В довеску также посмотрим, сколько там у боса памяти доступно, че мелочиться
?
Пишем такой код :
public class CpuRamCounter
{
protected PerformanceCounter _cpuCounter;
protected PerformanceCounter _ramUsage;
public CpuRamCounter(string remoteHostName)
{
_cpuCounter = new PerformanceCounter("Processor", "% Processor Time",
"_Total", remoteHostName );
_ramUsage = new PerformanceCounter("Memory", "Available MBytes", string.Empty, remoteHostName);
}
public float GetCpuUsage()
{
return _cpuCounter.NextValue();
}
public float GetRamMbAvailable()
{
return _ramUsage.NextValue();
}
}
Идея ясна? Дальше дело за малым. Вот пример использования:
public static void Main(string[] args)
{
Console.Write("Enter remote machine name or IP (e.g. 127.0.0.1): ");
string remoteHostName = Console.ReadLine();
try
{
CpuRamCounter remoteCpuRam = new CpuRamCounter(remoteHostName);
Console.WriteLine("Remote CPU usage is: {0}%", remoteCpuRam.GetCpuUsage());
Console.WriteLine("Remote RAM Available: {0} Mb", remoteCpuRam.GetRamMbAvailable());
}
catch(UnauthorizedAccessException)
{
Console.WriteLine("Code that is executing without administrative " +
"privileges attempted to read a performance counter.");
}
catch(Win32Exception ex)
{
Console.WriteLine("An error occurred when accessing a system API.");
Console.WriteLine("Details:" );
Console.WriteLine(ex.Message);
}
catch(PlatformNotSupportedException)
{
// Ну и ну! У боса стоит старенькая винда...
Console.WriteLine("The platform is Windows 98 or Windows " +
"Millennium Edition (Me), which does not support performance counters.");
}
catch(InvalidOperationException)
{
Console.WriteLine("The instance is not correctly associated with a performance counter.");
Console.WriteLine("Wrong remote host name?");
}
}
Мм... Одна маленька деталь. Процесс, который выполняет этот код должен иметь доступ к счетчикам производительности удаленного хоста. Т.е. в следующий раз когда пойдете к шефу, не забудьте, например, добавить своего пользователя в группу администраторы
...