Udostępnij za pośrednictwem


PerformanceCounterCategory.GetCategories Metoda

Definicja

Pobiera listę kategorii liczników wydajności zarejestrowanych na komputerze.

Przeciążenia

GetCategories()

Pobiera listę kategorii liczników wydajności zarejestrowanych na komputerze lokalnym.

GetCategories(String)

Pobiera listę kategorii liczników wydajności zarejestrowanych na określonym komputerze.

GetCategories()

Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs

Pobiera listę kategorii liczników wydajności zarejestrowanych na komputerze lokalnym.

public:
 static cli::array <System::Diagnostics::PerformanceCounterCategory ^> ^ GetCategories();
public static System.Diagnostics.PerformanceCounterCategory[] GetCategories ();
static member GetCategories : unit -> System.Diagnostics.PerformanceCounterCategory[]
Public Shared Function GetCategories () As PerformanceCounterCategory()

Zwraca

Tablica obiektów wskazująca PerformanceCounterCategory kategorie zarejestrowane na komputerze lokalnym.

Wyjątki

Wywołanie podstawowego interfejsu API systemu nie powiodło się.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.

Przykłady

Poniższy przykład kodu używa metody , GetCategories aby zwrócić tablicę PerformanceCounterCategory obiektów z komputera lokalnego lub określonego komputera. Konwertuje tablicę PerformanceCounterCategory na tablicę nazw kategorii, która sortuje i wyświetla dla użytkownika. Przeciążenie GetCategories jest wybierane na podstawie tego, czy określono nazwę komputera.

public:
    static void Main(array<String^>^ args)
    {
        String^ machineName = "";
        array<PerformanceCounterCategory^>^ categories;

        // Copy the machine name argument into the local variable.
        try
        {
            machineName = args[1]=="."? "": args[1];
        }
        catch (...)
        {
        }

        // Generate a list of categories registered on the specified computer.
        try
        {
            if (machineName->Length > 0)
            {
                categories = PerformanceCounterCategory::GetCategories(machineName);
            }
            else
            {
                categories = PerformanceCounterCategory::GetCategories();
            }
        }
        catch(Exception^ ex)
        {
            Console::WriteLine("Unable to get categories on " +
                (machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
            Console::WriteLine(ex->Message);
            return;
        }

        Console::WriteLine("These categories are registered on " +
            (machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);

        // Create and sort an array of category names.
        array<String^>^ categoryNames = gcnew array<String^>(categories->Length);
        int objX;
        for (objX = 0; objX < categories->Length; objX++)
        {
            categoryNames[objX] = categories[objX]->CategoryName;
        }
        Array::Sort(categoryNames);

        for (objX = 0; objX < categories->Length; objX++)
        {
            Console::WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
        }
    }
public static void Main(string[] args)
{
    string machineName = "";
    PerformanceCounterCategory[] categories;

    // Copy the machine name argument into the local variable.
    try
    {
        machineName = args[0]=="."? "": args[0];
    }
    catch
    {
    }

    // Generate a list of categories registered on the specified computer.
    try
    {
        if (machineName.Length > 0)
        {
            categories = PerformanceCounterCategory.GetCategories(machineName);
        }
        else
        {
            categories = PerformanceCounterCategory.GetCategories();
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to get categories on " +
            (machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
        Console.WriteLine(ex.Message);
        return;
    }

    Console.WriteLine("These categories are registered on " +
        (machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);

    // Create and sort an array of category names.
    string[] categoryNames = new string[categories.Length];
    int objX;
    for(objX = 0; objX < categories.Length; objX++)
    {
        categoryNames[objX] = categories[objX].CategoryName;
    }
    Array.Sort(categoryNames);

    for(objX = 0; objX < categories.Length; objX++)
    {
        Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
    }
}
Sub Main(ByVal args() As String)
    Dim machineName As String = ""
    Dim categories() As PerformanceCounterCategory

    ' Copy the machine name argument into the local variable.
    Try
        machineName = IIf(args(0) = ".", "", args(0))
    Catch ex As Exception
    End Try

    ' Generate a list of categories registered on the specified computer.
    Try
        If machineName.Length > 0 Then
            categories = _
                PerformanceCounterCategory.GetCategories(machineName)
        Else
            categories = PerformanceCounterCategory.GetCategories()
        End If
    Catch ex As Exception
        Console.WriteLine("Unable to get categories on " & _
            IIf(machineName.Length > 0, "computer ""{0}"":", _
            "this computer:"), machineName)
        Console.WriteLine(ex.Message)
        Return
    End Try

    Console.WriteLine("These categories are registered on " & _
        IIf(machineName.Length > 0, _
            "computer ""{0}"":", "this computer:"), machineName)

    ' Create and sort an array of category names.
    Dim categoryNames(categories.Length - 1) As String
    Dim objX As Integer
    For objX = 0 To categories.Length - 1
        Console.WriteLine("{0}, {1}", objX, categories(objX).CategoryName)
        categoryNames(objX) = categories(objX).CategoryName
    Next objX
    Array.Sort(categoryNames)

    For objX = 0 To categories.Length - 1
        Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames(objX))
    Next objX
End Sub

Uwagi

Uwaga

Aby odczytać liczniki wydajności z sesji logowania nieinterakcyjnego w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, dodaj się do grupy użytkownicy monitor wydajności.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, musisz najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Zobacz też

Dotyczy

GetCategories(String)

Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs

Pobiera listę kategorii liczników wydajności zarejestrowanych na określonym komputerze.

public:
 static cli::array <System::Diagnostics::PerformanceCounterCategory ^> ^ GetCategories(System::String ^ machineName);
public static System.Diagnostics.PerformanceCounterCategory[] GetCategories (string machineName);
static member GetCategories : string -> System.Diagnostics.PerformanceCounterCategory[]
Public Shared Function GetCategories (machineName As String) As PerformanceCounterCategory()

Parametry

machineName
String

Komputer do wyszukania.

Zwraca

Tablica obiektów wskazująca PerformanceCounterCategory kategorie zarejestrowane na określonym komputerze.

Wyjątki

Parametr machineName jest nieprawidłowy.

Wywołanie podstawowego interfejsu API systemu nie powiodło się.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.

Przykłady

Poniższy przykład kodu używa metody , GetCategories aby zwrócić tablicę PerformanceCounterCategory obiektów z komputera lokalnego lub określonego komputera. Konwertuje tablicę PerformanceCounterCategory na tablicę nazw kategorii, która sortuje i wyświetla dla użytkownika. Przeciążenie GetCategories jest wybierane na podstawie tego, czy określono nazwę komputera.

public:
    static void Main(array<String^>^ args)
    {
        String^ machineName = "";
        array<PerformanceCounterCategory^>^ categories;

        // Copy the machine name argument into the local variable.
        try
        {
            machineName = args[1]=="."? "": args[1];
        }
        catch (...)
        {
        }

        // Generate a list of categories registered on the specified computer.
        try
        {
            if (machineName->Length > 0)
            {
                categories = PerformanceCounterCategory::GetCategories(machineName);
            }
            else
            {
                categories = PerformanceCounterCategory::GetCategories();
            }
        }
        catch(Exception^ ex)
        {
            Console::WriteLine("Unable to get categories on " +
                (machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
            Console::WriteLine(ex->Message);
            return;
        }

        Console::WriteLine("These categories are registered on " +
            (machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);

        // Create and sort an array of category names.
        array<String^>^ categoryNames = gcnew array<String^>(categories->Length);
        int objX;
        for (objX = 0; objX < categories->Length; objX++)
        {
            categoryNames[objX] = categories[objX]->CategoryName;
        }
        Array::Sort(categoryNames);

        for (objX = 0; objX < categories->Length; objX++)
        {
            Console::WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
        }
    }
public static void Main(string[] args)
{
    string machineName = "";
    PerformanceCounterCategory[] categories;

    // Copy the machine name argument into the local variable.
    try
    {
        machineName = args[0]=="."? "": args[0];
    }
    catch
    {
    }

    // Generate a list of categories registered on the specified computer.
    try
    {
        if (machineName.Length > 0)
        {
            categories = PerformanceCounterCategory.GetCategories(machineName);
        }
        else
        {
            categories = PerformanceCounterCategory.GetCategories();
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to get categories on " +
            (machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
        Console.WriteLine(ex.Message);
        return;
    }

    Console.WriteLine("These categories are registered on " +
        (machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);

    // Create and sort an array of category names.
    string[] categoryNames = new string[categories.Length];
    int objX;
    for(objX = 0; objX < categories.Length; objX++)
    {
        categoryNames[objX] = categories[objX].CategoryName;
    }
    Array.Sort(categoryNames);

    for(objX = 0; objX < categories.Length; objX++)
    {
        Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
    }
}
Sub Main(ByVal args() As String)
    Dim machineName As String = ""
    Dim categories() As PerformanceCounterCategory

    ' Copy the machine name argument into the local variable.
    Try
        machineName = IIf(args(0) = ".", "", args(0))
    Catch ex As Exception
    End Try

    ' Generate a list of categories registered on the specified computer.
    Try
        If machineName.Length > 0 Then
            categories = _
                PerformanceCounterCategory.GetCategories(machineName)
        Else
            categories = PerformanceCounterCategory.GetCategories()
        End If
    Catch ex As Exception
        Console.WriteLine("Unable to get categories on " & _
            IIf(machineName.Length > 0, "computer ""{0}"":", _
            "this computer:"), machineName)
        Console.WriteLine(ex.Message)
        Return
    End Try

    Console.WriteLine("These categories are registered on " & _
        IIf(machineName.Length > 0, _
            "computer ""{0}"":", "this computer:"), machineName)

    ' Create and sort an array of category names.
    Dim categoryNames(categories.Length - 1) As String
    Dim objX As Integer
    For objX = 0 To categories.Length - 1
        Console.WriteLine("{0}, {1}", objX, categories(objX).CategoryName)
        categoryNames(objX) = categories(objX).CategoryName
    Next objX
    Array.Sort(categoryNames)

    For objX = 0 To categories.Length - 1
        Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames(objX))
    Next objX
End Sub

Uwagi

Aby pobrać kategorie na komputerze lokalnym, użyj innego przeciążenia lub przekazania parametru machineName ".

Uwaga

Aby odczytać liczniki wydajności z sesji logowania nieinterakcyjnego w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, dodaj się do grupy użytkownicy monitor wydajności.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, musisz najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Zobacz też

Dotyczy