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.InstanceExists (Método) (String)

Determina si la instancia de objeto de rendimiento especificada existe en la categoría identificada por la propiedad CategoryName de este objeto PerformanceCounterCategory.

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

'Declaración
Public Function InstanceExists ( _
	instanceName As String _
) As Boolean

Parámetros

instanceName
Tipo: System.String
Instancia de objeto de rendimiento de esta categoría de contadores de rendimiento que se va a buscar.

Valor devuelto

Tipo: System.Boolean
Es true si la categoría contiene la instancia de objeto de rendimiento especificada; de lo contrario, es false.

ExcepciónCondición
InvalidOperationException

La propiedad CategoryName es referencia null (Nothing en Visual Basic). Es posible que no se haya establecido la propiedad.

ArgumentNullException

El valor del parámetro instanceName es referencia null (Nothing en Visual Basic).

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.

Esta sobrecarga de InstanceExists no es static. Es necesario crear un objeto PerformanceCounterCategory y establecer la propiedad CategoryName.

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 una instancia de PerformanceCounter en una PerformanceCounterCategory. Primero, se crea un objeto PerformanceCounterCategory con el constructor adecuado, basándose en si se ha especificado un nombre de equipo. A continuación, se utiliza el método InstanceExists(String) para determinar si existe la instancia especificada y, a continuación, se informa al usuario. Si no hay ningún nombre de instancia especificado, se utiliza en el ejemplo el nombre predeterminado de la instancia única.


Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim instanceName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False
    Dim pcc As PerformanceCounterCategory
    Const SINGLE_INSTANCE_NAME As String = _
        "systemdiagnosticsperfcounterlibsingleinstance"

    ' Copy the supplied arguments into the local variables.
    Try
        categoryName = args(0)
        instanceName = args(1)
        machineName = IIf(args(2) = ".", "", args(2))
    Catch ex As Exception
        ' Ignore the exception from non-supplied arguments.
    End Try

    ' Use the given instance name or use the default single-instance name.
    If instanceName.Length = 0 Then
        instanceName = SINGLE_INSTANCE_NAME
    End If

    Try
        If machineName.Length = 0 Then
            pcc = New PerformanceCounterCategory(categoryName)
        Else
            pcc = New PerformanceCounterCategory(categoryName, machineName)
        End If

        ' Check whether the instance exists.
        ' Use the per-instance overload of InstanceExists.
        objectExists = pcc.InstanceExists(instanceName)

    Catch ex As Exception
        Console.WriteLine("Unable to check for the existence of " & _
            "instance ""{0}"" in category ""{1}"" on " & _
            IIf(machineName.Length > 0, _
            "computer ""{2}"":", "this computer:") & vbCrLf & _
            ex.Message, instanceName, categoryName, machineName)
        Return
    End Try

    ' Tell the user whether the instance exists.
    Console.WriteLine("Instance ""{0}"" " & _
        IIf(objectExists, "exists", "does not exist") & _
        " in category ""{1}"" on " & _
        IIf(machineName.Length > 0, _
            "computer ""{2}"".", "this computer."), _
        instanceName, pcc.CategoryName, pcc.MachineName)
End Sub


.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:
© 2015 Microsoft