PerformanceCounterCategory.CounterExists Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Avgör om en angiven räknare är registrerad i en viss kategori.
Överlagringar
| Name | Description |
|---|---|
| CounterExists(String) |
Avgör om den angivna räknaren är registrerad i den här kategorin, vilket anges av CategoryName egenskaperna och MachineName . |
| CounterExists(String, String) |
Avgör om den angivna räknaren är registrerad i den angivna kategorin på den lokala datorn. |
| CounterExists(String, String, String) |
Avgör om den angivna räknaren är registrerad i den angivna kategorin på en fjärrdator. |
CounterExists(String)
Avgör om den angivna räknaren är registrerad i den här kategorin, vilket anges av CategoryName egenskaperna och 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
Parametrar
- counterName
- String
Namnet på prestandaräknaren som ska sökas efter.
Returer
trueom räknaren är registrerad i den kategori som anges av CategoryName egenskaperna ochMachineName, annars . false
Undantag
counterName är null.
Egenskapen CategoryName har inte angetts.
Ett anrop till ett underliggande system-API misslyckades.
Kod som körs utan administratörsbehörighet försökte läsa en prestandaräknare.
Exempel
I följande kodexempel avgörs om det finns någon PerformanceCounter . Det hämtar ett kategorinamn, räknarnamn och datornamn från kommandoraden, om de anges. Det skapar ett PerformanceCounterCategory objekt med hjälp av lämplig PerformanceCounterCategory. Den använder CounterExists(String) sedan metoden för att avgöra om den angivna PerformanceCounter finns och informerar användaren.
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
Kommentarer
Du måste ange egenskapen CategoryName innan du anropar den här metoden. Annars utlöses ett undantag.
Om du inte har angett egenskapen MachineName använder den här metoden den lokala datorn (".").
Note
Om du vill läsa prestandaräknare från en icke-interaktiv inloggningssession i Windows Vista och senare, Windows XP Professional x64 Edition eller Windows Server 2003, måste du antingen vara medlem i gruppen Performance Monitor Användare eller ha administratörsbehörighet.
För att undvika att behöva höja dina privilegier för att få åtkomst till prestandaräknare i Windows Vista och senare lägger du till dig själv i gruppen Performance Monitor Användare.
I Windows Vista och senare bestämmer UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.
Se även
Gäller för
CounterExists(String, String)
Avgör om den angivna räknaren är registrerad i den angivna kategorin på den lokala datorn.
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
Parametrar
- counterName
- String
Namnet på prestandaräknaren som ska sökas efter.
- categoryName
- String
Namnet på den prestandaräknarekategori eller prestandaobjekt som den angivna prestandaräknaren är associerad med.
Returer
true, om räknaren är registrerad i den angivna kategorin på den lokala datorn. annars . false
Undantag
categoryName är en tom sträng ("").
Kategorinamnet finns inte.
Ett anrop till ett underliggande system-API misslyckades.
Kod som körs utan administratörsbehörighet försökte läsa en prestandaräknare.
Exempel
I följande kodexempel avgörs om det finns någon PerformanceCounter . Det hämtar ett kategorinamn, räknarnamn och datornamn från kommandoraden, om de anges. Den använder statiska överlagringar av CounterExists metoden för att avgöra om det angivna PerformanceCounter namnet finns i PerformanceCounterCategory. Överlagringen väljs baserat på om ett datornamn anges.
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
Kommentarer
Note
Om du vill läsa prestandaräknare från en icke-interaktiv inloggningssession i Windows Vista och senare, Windows XP Professional x64 Edition eller Windows Server 2003, måste du antingen vara medlem i gruppen Performance Monitor Användare eller ha administratörsbehörighet.
För att undvika att behöva höja dina privilegier för att få åtkomst till prestandaräknare i Windows Vista och senare lägger du till dig själv i gruppen Performance Monitor Användare.
I Windows Vista och senare bestämmer UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.
Se även
Gäller för
CounterExists(String, String, String)
Avgör om den angivna räknaren är registrerad i den angivna kategorin på en fjärrdator.
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
Parametrar
- counterName
- String
Namnet på prestandaräknaren som ska sökas efter.
- categoryName
- String
Namnet på den prestandaräknarekategori eller prestandaobjekt som den angivna prestandaräknaren är associerad med.
- machineName
- String
Namnet på den dator där prestandaräknarens kategori och dess associerade räknare finns.
Returer
true, om räknaren är registrerad i den angivna kategorin på den angivna datorn. annars . false
Undantag
Kategorinamnet finns inte.
Ett anrop till ett underliggande system-API misslyckades.
Kod som körs utan administratörsbehörighet försökte läsa en prestandaräknare.
Exempel
I följande kodexempel avgörs om det finns någon PerformanceCounter . Det hämtar ett kategorinamn, räknarnamn och datornamn från kommandoraden, om de anges. Den använder statiska överlagringar av CounterExists metoden för att avgöra om det angivna PerformanceCounter namnet finns i PerformanceCounterCategory. Överlagringen väljs baserat på om ett datornamn anges.
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
Kommentarer
Note
Om du vill läsa prestandaräknare från en icke-interaktiv inloggningssession i Windows Vista och senare, Windows XP Professional x64 Edition eller Windows Server 2003, måste du antingen vara medlem i gruppen Performance Monitor Användare eller ha administratörsbehörighet.
För att undvika att behöva höja dina privilegier för att få åtkomst till prestandaräknare i Windows Vista och senare lägger du till dig själv i gruppen Performance Monitor Användare.
I Windows Vista och senare bestämmer UAC (User Account Control) en användares behörigheter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt prestandaräknare måste du först höja dina privilegier från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att högerklicka på programikonen och ange att du vill köra som administratör.