Загрузка процессора с помощью WMI & C#
Вопрос
Как я могу получить текущую загрузку процессора в c # с помощью WMI?Я видел много сообщений с использованием счетчиков производительности, но мне нужно решение, которое может работать с удаленными машинами.Я также нашел решение VB здесь, но я бы предпочел выполнить это на C #, если это возможно.
Решение 3
У меня это работает.Использовался практически тот же код, что и найденный здесь: http://www.csharphelp.com/archives2/archive334.html Оказывается, у меня был плохой путь, с которым я, наконец, разобрался:новый путь к управлению (строка.Формат("\\{0} oot\cimv2",имя машины));
Другие советы
Производительность с помощью WMI, мягко говоря, неважная.Счетчики производительности нормально работают с удаленными машинами.Используйте System.Diagnostics.PerformanceCounterXxx
классы, конструкторы имеют перегрузки, которые требуют machineName
аргумент.
инструмент "pslist" из sysinternals (его бесплатный) может считывать данные об использовании с удаленных машин.вы могли бы запустить программу в cmd-окне и получить результат в вашем приложении.
cmd.StartInfo.FileName = "cmd.com";
cmd.StartInfo.Arguments = "/c pslist .....";
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.RedirectStandardError = true;
// run process and catch output
cmd.Start();
string sOutput = cmd.StandardOutput.ReadToEnd();
cmd.WaitForExit();