PerformanceCounterCategory.InstanceExists Metod

Definition

Avgör om kategorin innehåller den angivna prestandaobjektinstansen.

Överlagringar

Name Description
InstanceExists(String)

Avgör om den angivna prestandaobjektinstansen finns i den kategori som identifieras av objektets PerformanceCounterCategoryCategoryName egenskap.

InstanceExists(String, String)

Avgör om en angiven kategori på den lokala datorn innehåller den angivna prestandaobjektinstansen.

InstanceExists(String, String, String)

Avgör om en angiven kategori på en angiven dator innehåller den angivna prestandaobjektinstansen.

InstanceExists(String)

Avgör om den angivna prestandaobjektinstansen finns i den kategori som identifieras av objektets PerformanceCounterCategoryCategoryName egenskap.

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

Parametrar

instanceName
String

Prestandaobjektinstansen i den här prestandaräknarens kategori att söka efter.

Returer

trueom kategorin innehåller den angivna prestandaobjektinstansen. annars . false

Undantag

Egenskapen CategoryName är null. Egenskapen kanske inte har angetts.

Parametern instanceName är null.

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 en PerformanceCounter instans finns inom en PerformanceCounterCategory. Det skapar först ett PerformanceCounterCategory objekt med hjälp av lämplig konstruktor baserat på om ett datornamn har angetts. Den använder InstanceExists(String) sedan för att avgöra om den angivna instansen finns och informerar sedan användaren. Om inget instansnamn anges används standardnamnet för en enskild instans i exemplet.

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

Kommentarer

Den här överlagringen av InstanceExists är inte static. Du måste skapa ett PerformanceCounterCategory objekt och ange egenskapen CategoryName .

Anteckning

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

InstanceExists(String, String)

Avgör om en angiven kategori på den lokala datorn innehåller den angivna prestandaobjektinstansen.

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

Parametrar

instanceName
String

Den prestandaobjektinstans som du vill söka efter.

categoryName
String

Kategorin prestandaräknare som ska sökas.

Returer

trueom kategorin innehåller den angivna prestandaobjektinstansen. annars . false

Undantag

Parametern instanceName är null.

-eller-

Parametern categoryName är null.

Parametern categoryName är en tom sträng ("").

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 används statiska överlagringar för InstanceExists att avgöra om den angivna PerformanceCounter instansen PerformanceCounterCategoryfinns i . Överlagringen väljs baserat på om ett datornamn har angetts. Om inget instansnamn anges används standardnamnet för en enskild instans i exemplet.

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

Kommentarer

Det går inte att avgöra om det finns en prestandaobjektinstans på en dator utan att ange en specifik kategori att titta i.

Anteckning

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

InstanceExists(String, String, String)

Avgör om en angiven kategori på en angiven dator innehåller den angivna prestandaobjektinstansen.

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

Parametrar

instanceName
String

Den prestandaobjektinstans som du vill söka efter.

categoryName
String

Kategorin prestandaräknare som ska sökas.

machineName
String

Namnet på den dator som du vill söka efter kategoriinstansparet på.

Returer

trueom kategorin innehåller den angivna prestandaobjektinstansen. annars . false

Undantag

Parametern instanceName är null.

-eller-

Parametern categoryName är null.

Parametern categoryName är en tom sträng ("").

-eller-

Parametern machineName är ogiltig.

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 används statiska överlagringar för InstanceExists att avgöra om den angivna PerformanceCounter instansen PerformanceCounterCategoryfinns i . Överlagringen väljs baserat på om ett datornamn har angetts. Om inget instansnamn anges används standardnamnet för en enskild instans i exemplet.

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

Kommentarer

Det går inte att avgöra om det finns en prestandaobjektinstans på en dator utan att ange en specifik kategori att titta i.

Du kan använda "." för att ange den lokala datorn.

Anteckning

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