PerformanceCounterCategory.InstanceExists Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 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 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.