Загрузка процессора с использованием WMI & C # - PullRequest
1 голос
/ 06 апреля 2009

Как я могу получить текущее использование процессора в c # с помощью WMI? Я видел много сообщений, использующих счетчики производительности, но мне нужно решение, которое может работать с удаленными компьютерами. Я также нашел решение VB здесь , но я бы предпочел выполнить это в C #, если это возможно.

Ответы [ 3 ]

3 голосов
/ 06 апреля 2009

Производительность с WMI, по меньшей мере, грязная. Счетчики производительности работают нормально с удаленными машинами. Используйте классы System.Diagnostics.PerformanceCounterXxx, конструкторы имеют перегрузки, которые принимают аргумент machineName.

2 голосов
/ 06 апреля 2009

инструмент "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(); 
1 голос
/ 07 апреля 2009

Получил это работает. Использовал в основном тот же код, что и здесь: http://www.csharphelp.com/archives2/archive334.html Оказывается, у меня был неверный путь, который я окончательно выяснил: новый ManagementPath (string.Format ("\\ {0} \ root \ cimv2", имя_компьютер));

...