Buenas,
hace tiempo que conozco y utilizo la función GetProcessesByName("NombreProceso") de la clase System.Diagnostics.Process que me devuelve una matriz de objetos Process con los procesos que se están ejecutando en estos momentos de nombre "NombreProceso".
Mi sorpresa ha sido cuando un cliente me ha llamado diciendome que le saltaba una "ventanita de error" (una excepción) que indicaba literalmente que:
-Message: "Process performance counter is disabled, so the requested operation cannot be performed."
-Type: "System.InvalidOperationException"
-StackTrace:
"at System.Diagnostics.NtProcessManager.GetProcessInfo s(PerformanceCounterLib library)
at System.Diagnostics.NtProcessManager.GetProcessInfo s(String machineName, Boolean isRemoteMachine)
at System.Diagnostics.ProcessManager.GetProcessInfos( String machineName)
at System.Diagnostics.Process.GetProcessesByName(Stri ng processName, String machineName)
at System.Diagnostics.Process.GetProcessesByName(Stri ng processName)".
Es decir, parece que un tal "contador de rendimiento de procesos" tiene que estar habilitado en la máquina que se quiera usar la función GetProcessesByName("NombreProceso");
-¿alguien sabe donde se puede habilitar dicho contador?
-¿se puede hacer por código?, ¿como?
-¿en que sistemas operativos existe este contador o no tiene que ver nada con el sistema operativo?
¡AYUDA!