Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

PerformanceCounterCategory.CounterExists (Método) (String, String)

Determina si el contador especificado está registrado en la categoría especificada del equipo local.

Espacio de nombres:  System.Diagnostics
Ensamblado:  System (en System.dll)

public static bool CounterExists(
	string counterName,
	string categoryName
)

Parámetros

counterName
Tipo: System.String
Nombre del contador de rendimiento que se va a buscar.
categoryName
Tipo: System.String
Nombre de la categoría de contador de rendimiento u objeto de rendimiento al que está asociado el contador de rendimiento especificado.

Valor devuelto

Tipo: System.Boolean
Es true si el contador está registrado en la categoría especificada del equipo local; de lo contrario, es false.

ExcepciónCondición
ArgumentNullException

La propiedad categoryName es null.

O bien

La propiedad counterName es null.

ArgumentException

categoryName es una cadena vacía ("").

InvalidOperationException

El nombre de categoría especificado no existe.

Win32Exception

Se ha producido un error en la llamada a una API del sistema subyacente.

UnauthorizedAccessException

Código que se ejecuta sin privilegios administrativos para intentar leer un contador de rendimiento.

NotaNota

Para leer los contadores de rendimiento de Windows Vista y versiones posteriores, Windows XP Professional x64 Edition o Windows Server 2003, debe ser miembro del grupo Usuarios del monitor de sistema o tener privilegios administrativos.

Para evitar la elevación de los privilegios de acceso a los contadores de rendimiento en Windows Vista y versiones posteriores, agregue su propio usuario al grupo Usuarios del monitor de sistema.

En Windows Vista y posteriores, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará el rol de usuario estándar. Para ejecutar el código que tiene acceso a los contadores de rendimiento, primero debe elevar el nivel de sus privilegios de usuario estándar a administrador. Podrá hacerlo cuando inicie una aplicación haciendo clic con el botón secundario en el icono de la aplicación e indicando que desea ejecutarla como administrador.

En el ejemplo de código siguiente se determina si existe un PerformanceCounter. Se obtiene un nombre de categoría, un nombre de contador y un nombre de equipo de la línea de comandos, si se han proporcionado. Se utilizan las sobrecargas estáticas del método CounterExists para determinar si existe el nombre de PerformanceCounter especificado en la PerformanceCounterCategory. La sobrecarga se selecciona basándose en si se ha proporcionado un nombre de equipo.


public static void Main(string[] args)
{
    string categoryName = "";
    string counterName = "";
    string machineName = "";
    bool objectExists = false;

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        counterName = args[1];
        machineName = args[2]=="."? "": args[2];
    }
    catch(Exception ex)
    {
        // Ignore the exception from non-supplied arguments.
    }

    try
    {
        // Check whether the specified counter exists.
        // Use the static forms of the CounterExists method.
        if (machineName.Length==0)
        {
            objectExists = PerformanceCounterCategory.CounterExists(counterName, categoryName);
        }
        else
        {
            objectExists = PerformanceCounterCategory.CounterExists(counterName, categoryName, machineName);
        }

    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "counter \"{0}\" in category \"{1}\" on " + 
            (machineName.Length>0? "computer \"{2}\".": "this computer.") + "\n" + 
            ex.Message, counterName, categoryName, machineName);
        return;
    }

    // Tell the user whether the counter exists.
    Console.WriteLine("Counter \"{0}\" "+ (objectExists? "exists": "does not exist") + 
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."), 
        counterName, categoryName, machineName);
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft