PerformanceCounterCategory.InstanceExists Método

Definição

Determina se a categoria contém a instância do objeto de desempenho especificada.

Sobrecargas

Name Description
InstanceExists(String)

Determina se a instância do objeto de desempenho especificada existe na categoria identificada pela propriedade deste PerformanceCounterCategoryCategoryName objeto.

InstanceExists(String, String)

Determina se uma categoria especificada no computador local contém a instância do objeto de desempenho especificada.

InstanceExists(String, String, String)

Determina se uma categoria especificada num determinado computador contém a instância do objeto de desempenho especificada.

InstanceExists(String)

Determina se a instância do objeto de desempenho especificada existe na categoria identificada pela propriedade deste PerformanceCounterCategoryCategoryName objeto.

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

Parâmetros

instanceName
String

A instância do objeto performance nesta categoria de contador de desempenho a procurar.

Devoluções

true se a categoria contiver a instância especificada do objeto de desempenho; caso contrário, false.

Exceções

A propriedade CategoryName é null. A propriedade pode não ter sido definida.

O instanceName parâmetro é null.

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 existe uma PerformanceCounter instância dentro de um PerformanceCounterCategory. Primeiro cria um PerformanceCounterCategory objeto, usando o construtor apropriado, consoante se o nome do computador foi especificado. Depois, é InstanceExists(String) usado para determinar se a instância especificada existe, e informa o utilizador. Se não for especificado o nome da instância, o exemplo usa o nome padrão de uma única instância.

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

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

    // Use the given instance name or use the default single-instance name.
    if (instanceName.Length==0)
    {
        instanceName = SINGLE_INSTANCE_NAME;
    }

    try
    {
        if (machineName.Length==0)
        {
            pcc = new PerformanceCounterCategory(categoryName);
        }
        else
        {
            pcc = new PerformanceCounterCategory(categoryName, machineName);
        }

        // Check whether the instance exists.
        // Use the per-instance overload of InstanceExists.
        objectExists = pcc.InstanceExists(instanceName);
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "instance \"{0}\" in category \"{1}\" on " +
            (machineName.Length>0? "computer \"{2}\":": "this computer:") +
            "\n" + ex.Message, instanceName, categoryName, machineName);
        return;
    }

    // Tell the user whether the instance exists.
    Console.WriteLine("Instance \"{0}\" " + (objectExists? "exists": "does not exist") +
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."),
        instanceName, pcc.CategoryName, pcc.MachineName);
}
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

Observações

Esta sobrecarga de InstanceExists não staticé . Exige que crie um PerformanceCounterCategory objeto e defina a propriedade CategoryName .

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

InstanceExists(String, String)

Determina se uma categoria especificada no computador local contém a instância do objeto de desempenho especificada.

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

Parâmetros

instanceName
String

A instância do objeto de desempenho a procurar.

categoryName
String

A categoria de contador de desempenho para pesquisar.

Devoluções

true se a categoria contiver a instância especificada do objeto de desempenho; caso contrário, false.

Exceções

O instanceName parâmetro é null.

-ou-

O categoryName parâmetro é null.

O categoryName parâmetro é uma cadeia vazia ("").

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 exemplo de código seguinte utiliza as sobrecargas estáticas de InstanceExists para determinar se a instância dada PerformanceCounter existe no PerformanceCounterCategory. A sobrecarga é selecionada com base no nome do computador especificado. Se não for especificado o nome da instância, o exemplo usa o nome padrão de uma única instância.

public static void Main(string[] args)
{
    string categoryName = "";
    string instanceName = "";
    string machineName = "";
    bool objectExists = false;
    const string SINGLE_INSTANCE_NAME = "systemdiagnosticsperfcounterlibsingleinstance";

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

    // Use the given instance name or use the default single-instance name.
    if (instanceName.Length==0)
    {
        instanceName = SINGLE_INSTANCE_NAME;
    }

    try
    {
        // Check whether the specified instance exists.
        // Use the static forms of the InstanceExists method.
        if (machineName.Length==0)
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName);
        }
        else
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName, machineName);
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "instance \"{0}\" in category \"{1}\" on " +
            (machineName.Length>0? "computer \"{2}\":": "this computer:") + "\n" +
            ex.Message, instanceName, categoryName, machineName);
        return;
    }

    // Tell the user whether the instance exists.
    Console.WriteLine("Instance \"{0}\" " + (objectExists? "exists": "does not exist") +
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."),
        instanceName, categoryName, machineName);
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim instanceName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False
    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
        ' Check whether the specified instance exists.
        ' Use the static forms of the InstanceExists method.
        If machineName.Length = 0 Then
            objectExists = PerformanceCounterCategory.InstanceExists( _
                instanceName, categoryName)
        Else
            objectExists = PerformanceCounterCategory.InstanceExists( _
                instanceName, categoryName, machineName)
        End If

    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, categoryName, machineName)
End Sub

Observações

Não é possível determinar se existe uma instância de objeto de desempenho num computador sem especificar uma categoria específica para consultar.

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

InstanceExists(String, String, String)

Determina se uma categoria especificada num determinado computador contém a instância do objeto de desempenho especificada.

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

Parâmetros

instanceName
String

A instância do objeto de desempenho a procurar.

categoryName
String

A categoria de contador de desempenho para pesquisar.

machineName
String

O nome do computador onde procurar o par de instâncias de categoria.

Devoluções

true se a categoria contiver a instância especificada do objeto de desempenho; caso contrário, false.

Exceções

O instanceName parâmetro é null.

-ou-

O categoryName parâmetro é null.

O categoryName parâmetro é uma cadeia vazia ("").

-ou-

O machineName parâmetro é inválido.

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 exemplo de código seguinte utiliza as sobrecargas estáticas de InstanceExists para determinar se a instância dada PerformanceCounter existe no PerformanceCounterCategory. A sobrecarga é selecionada com base no nome do computador especificado. Se não for especificado o nome da instância, o exemplo usa o nome padrão de uma única instância.

public static void Main(string[] args)
{
    string categoryName = "";
    string instanceName = "";
    string machineName = "";
    bool objectExists = false;
    const string SINGLE_INSTANCE_NAME = "systemdiagnosticsperfcounterlibsingleinstance";

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

    // Use the given instance name or use the default single-instance name.
    if (instanceName.Length==0)
    {
        instanceName = SINGLE_INSTANCE_NAME;
    }

    try
    {
        // Check whether the specified instance exists.
        // Use the static forms of the InstanceExists method.
        if (machineName.Length==0)
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName);
        }
        else
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName, machineName);
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "instance \"{0}\" in category \"{1}\" on " +
            (machineName.Length>0? "computer \"{2}\":": "this computer:") + "\n" +
            ex.Message, instanceName, categoryName, machineName);
        return;
    }

    // Tell the user whether the instance exists.
    Console.WriteLine("Instance \"{0}\" " + (objectExists? "exists": "does not exist") +
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."),
        instanceName, categoryName, machineName);
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim instanceName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False
    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
        ' Check whether the specified instance exists.
        ' Use the static forms of the InstanceExists method.
        If machineName.Length = 0 Then
            objectExists = PerformanceCounterCategory.InstanceExists( _
                instanceName, categoryName)
        Else
            objectExists = PerformanceCounterCategory.InstanceExists( _
                instanceName, categoryName, machineName)
        End If

    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, categoryName, machineName)
End Sub

Observações

Não é possível determinar se existe uma instância de objeto de desempenho num computador sem especificar uma categoria específica para consultar.

Pode usar "." para especificar 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