PerformanceCounterCategory.CounterExists Método

Definição

Determina se um contador especificado está registado numa determinada categoria.

Sobrecargas

Name Description
CounterExists(String)

Determina se o contador especificado está registado nesta categoria, o que é indicado pelas CategoryName propriedades e MachineName .

CounterExists(String, String)

Determina se o contador especificado está registado na categoria especificada no computador local.

CounterExists(String, String, String)

Determina se o contador especificado está registado na categoria especificada num computador remoto.

CounterExists(String)

Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs

Determina se o contador especificado está registado nesta categoria, o que é indicado pelas CategoryName propriedades e MachineName .

public:
 bool CounterExists(System::String ^ counterName);
public bool CounterExists(string counterName);
member this.CounterExists : string -> bool
Public Function CounterExists (counterName As String) As Boolean

Parâmetros

counterName
String

O nome do contador de desempenho a procurar.

Devoluções

true se o contador estiver registado na categoria especificada pelas CategoryName propriedades e; MachineName caso contrário, false.

Exceções

O counterName é null.

A CategoryName propriedade ainda não foi definida.

Uma chamada a uma API do sistema subjacente falhou.

Código que está a executar sem privilégios administrativos tentou ler um contador de desempenho.

Exemplos

O seguinte exemplo de código determina se um PerformanceCounter existe. Recebe um nome de categoria, um nome do contador e um nome do computador da linha de comandos, se forem indicados. Cria um PerformanceCounterCategory objeto usando o apropriado PerformanceCounterCategory. Depois, utiliza o CounterExists(String) método para determinar se o especificado PerformanceCounter existe e informa o utilizador.

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

    // 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
    {
        if (machineName.Length==0)
        {
            pcc = new PerformanceCounterCategory(categoryName);
        }
        else
        {
            pcc = new PerformanceCounterCategory(categoryName, machineName);
        }

        // Check whether the specified counter exists.
        // Use the per-instance overload of CounterExists.
        objectExists = pcc.CounterExists(counterName);
    }
    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, pcc.CategoryName, pcc.MachineName);
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim counterName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False
    Dim pcc As PerformanceCounterCategory

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

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

        ' Check whether the specified counter exists.
        ' Use the per-instance overload of CounterExists.
        objectExists = pcc.CounterExists(counterName)

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

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

Observações

Deve definir a CategoryName propriedade antes de chamar este método. Caso contrário, uma exceção é lançada.

Se não tiver definido a propriedade MachineName , este método utiliza o computador local (".").

Note

Para ler contadores de desempenho de uma sessão de login não interativa no Windows Vista e versões posteriores, Windows XP Professional x64 Edition ou Windows Server 2003, deve ser membro do grupo Performance Monitor Users ou ter privilégios administrativos.

Para evitar ter de elevar os seus privilégios para aceder a contadores de desempenho no Windows Vista e versões posteriores, adicione-se ao grupo de Utilizadores do Performance Monitor.

No Windows Vista e posteriores, o Controlo de Conta de Utilizador (UAC) determina os privilégios de um utilizador. Se for membro do grupo Administradores Incorporados, é-lhe atribuídos dois tokens de acesso em tempo de execução: um token de acesso de utilizador padrão e um token de acesso de administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acede aos contadores de desempenho, deve primeiro elevar os seus privilégios de utilizador padrão a administrador. Você pode fazer isso ao iniciar um aplicativo clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.

Ver também

Aplica-se a

CounterExists(String, String)

Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs

Determina se o contador especificado está registado na categoria especificada no computador local.

public:
 static bool CounterExists(System::String ^ counterName, System::String ^ categoryName);
public static bool CounterExists(string counterName, string categoryName);
static member CounterExists : string * string -> bool
Public Shared Function CounterExists (counterName As String, categoryName As String) As Boolean

Parâmetros

counterName
String

O nome do contador de desempenho a procurar.

categoryName
String

O nome da categoria do contador de desempenho, ou objeto de desempenho, com o qual o contador de desempenho especificado está associado.

Devoluções

true, se o contador estiver registado na categoria especificada no computador local; caso contrário, false.

Exceções

O categoryName é null.

-ou-

O counterName é null.

É categoryName uma cadeia vazia ("").

O nome da categoria não existe.

Uma chamada a uma API do sistema subjacente falhou.

Código que está a executar sem privilégios administrativos tentou ler um contador de desempenho.

Exemplos

O seguinte exemplo de código determina se um PerformanceCounter existe. Recebe um nome de categoria, um nome do contador e um nome do computador da linha de comandos, se forem indicados. Utiliza as sobrecargas estáticas do CounterExists método para determinar se o nome especificado PerformanceCounter existe no PerformanceCounterCategory. A sobrecarga é selecionada com base no nome do computador fornecido ou não.

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);
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim counterName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False

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

    Try
        ' Check whether the specified counter exists.
        ' Use the static forms of the CounterExists method.
        If machineName.Length = 0 Then
            objectExists = PerformanceCounterCategory.CounterExists( _
                counterName, categoryName)
        Else
            objectExists = PerformanceCounterCategory.CounterExists( _
                counterName, categoryName, machineName)
        End If

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

    ' Tell the user whether the counter exists.
    Console.WriteLine("Counter ""{0}"" " & _
        IIf(objectExists, "exists", "does not exist") & _
        " in category ""{1}"" on " & _
        IIf(machineName.Length > 0, _
            "computer ""{2}"".", "this computer."), _
        counterName, categoryName, machineName)
End Sub

Observações

Note

Para ler contadores de desempenho de uma sessão de login não interativa no Windows Vista e versões posteriores, Windows XP Professional x64 Edition ou Windows Server 2003, deve ser membro do grupo Performance Monitor Users ou ter privilégios administrativos.

Para evitar ter de elevar os seus privilégios para aceder a contadores de desempenho no Windows Vista e versões posteriores, adicione-se ao grupo de Utilizadores do Performance Monitor.

No Windows Vista e posteriores, o Controlo de Conta de Utilizador (UAC) determina os privilégios de um utilizador. Se for membro do grupo Administradores Incorporados, é-lhe atribuídos dois tokens de acesso em tempo de execução: um token de acesso de utilizador padrão e um token de acesso de administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acede aos contadores de desempenho, deve primeiro elevar os seus privilégios de utilizador padrão a administrador. Você pode fazer isso ao iniciar um aplicativo clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.

Ver também

Aplica-se a

CounterExists(String, String, String)

Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs
Origem:
PerformanceCounterCategory.cs

Determina se o contador especificado está registado na categoria especificada num computador remoto.

public:
 static bool CounterExists(System::String ^ counterName, System::String ^ categoryName, System::String ^ machineName);
public static bool CounterExists(string counterName, string categoryName, string machineName);
static member CounterExists : string * string * string -> bool
Public Shared Function CounterExists (counterName As String, categoryName As String, machineName As String) As Boolean

Parâmetros

counterName
String

O nome do contador de desempenho a procurar.

categoryName
String

O nome da categoria do contador de desempenho, ou objeto de desempenho, com o qual o contador de desempenho especificado está associado.

machineName
String

O nome do computador onde existe a categoria de contador de desempenho e os seus contadores associados.

Devoluções

true, se o contador estiver registado na categoria especificada no computador especificado; caso contrário, false.

Exceções

O categoryName é null.

-ou-

O counterName é null.

É categoryName uma cadeia vazia ("").

-ou-

É machineName inválido.

O nome da categoria não existe.

Uma chamada a uma API do sistema subjacente falhou.

Código que está a executar sem privilégios administrativos tentou ler um contador de desempenho.

Exemplos

O seguinte exemplo de código determina se um PerformanceCounter existe. Recebe um nome de categoria, um nome do contador e um nome do computador da linha de comandos, se forem indicados. Utiliza as sobrecargas estáticas do CounterExists método para determinar se o nome especificado PerformanceCounter existe no PerformanceCounterCategory. A sobrecarga é selecionada com base no nome do computador fornecido ou não.

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);
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim counterName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False

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

    Try
        ' Check whether the specified counter exists.
        ' Use the static forms of the CounterExists method.
        If machineName.Length = 0 Then
            objectExists = PerformanceCounterCategory.CounterExists( _
                counterName, categoryName)
        Else
            objectExists = PerformanceCounterCategory.CounterExists( _
                counterName, categoryName, machineName)
        End If

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

    ' Tell the user whether the counter exists.
    Console.WriteLine("Counter ""{0}"" " & _
        IIf(objectExists, "exists", "does not exist") & _
        " in category ""{1}"" on " & _
        IIf(machineName.Length > 0, _
            "computer ""{2}"".", "this computer."), _
        counterName, categoryName, machineName)
End Sub

Observações

Note

Para ler contadores de desempenho de uma sessão de login não interativa no Windows Vista e versões posteriores, Windows XP Professional x64 Edition ou Windows Server 2003, deve ser membro do grupo Performance Monitor Users ou ter privilégios administrativos.

Para evitar ter de elevar os seus privilégios para aceder a contadores de desempenho no Windows Vista e versões posteriores, adicione-se ao grupo de Utilizadores do Performance Monitor.

No Windows Vista e posteriores, o Controlo de Conta de Utilizador (UAC) determina os privilégios de um utilizador. Se for membro do grupo Administradores Incorporados, é-lhe atribuídos dois tokens de acesso em tempo de execução: um token de acesso de utilizador padrão e um token de acesso de administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acede aos contadores de desempenho, deve primeiro elevar os seus privilégios de utilizador padrão a administrador. Você pode fazer isso ao iniciar um aplicativo clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.

Ver também

Aplica-se a