Диспедчер задач на c/c++

Вот такое вот задание - Используя язык С++, и его встроенные функции, реализовать аналог диспетчера задач, который бы выводил список запущенных процессов в системе, их имена id, приоритет, занимаемую память и загрузку процессора, в консоль. Аналогом в windows является команда «tasklist» в командной строке. Использовать конструкцию system(«tasklist» ) - запрещено. Для понятия того что от вас требуется, откройте консоль (win+r→cmd) и введите конманду tasklist. Если возникают проблемы с доступом, откройте консоль с правами администратора. Для меня как для начинающего оно очень сложное и всё что я смог нарыть это вывод процесса и его айдишника.Вот что у меня есть на данный момент.

    #include <Windows.h>
#include <TlHelp32.h>
#include <stdio.h>
#include <string.h>
#include <psapi.h>
int main(int argc, char* argv[])
{
    STARTUPINFO si = { 0 };
    PROCESS_INFORMATION pi = { 0 };

    HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (!hSnap)
    {
        wprintf(L"Can't get handle of snapshot process!\n");
        return 1;
    }

    PROCESSENTRY32 pe = { 0 };
    pe.dwSize = sizeof(PROCESSENTRY32);


    HANDLE process = { 0 };

    Process32First(hSnap, &pe);
    do
    {
        wprintf(L"\n\t%s\t\t\t%d\t%d",
            pe.szExeFile, pe.th32ProcessID, pe.cntThreads);

        if (!wcscmp(pe.szExeFile, L"winAPI_Console.exe"))
            process = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pe.th32ProcessID);

    } while (Process32Next(hSnap, &pe));
    CloseHandle(hSnap);

    if (process)
    {
        TerminateProcess(process, 0);
        CloseHandle(process);
    }
}```

Ответы (0 шт):