Диспетчер задач
собственно, код:
Код:
#include "pch.h"
#include <windows.h>
#include <tlhelp32.h>
#include <tchar.h>
#include <iostream>
using namespace std;
// Forward declarations:
BOOL GetProcessList();
void printError(TCHAR* msg);
int main(void)
{
setlocale(LC_ALL, "rus");
int q = 1, i = 0, r = 0;
char IdPr[5];
GetProcessList();
cerr << endl;
while (q)
{
cout << "1-завершение процесса " << endl;
cout << "2-понижение приоретета" << endl;
cout << "0-выход" << endl;
cin >> i;
if (i < 4)
switch (i)
{
case 1:
HANDLE hProcess;
BOOL pid;
cerr << "Введите ID Процеса 4тобы убить" << endl << endl;
IdPr[0] = 0;
cin >> pid;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
TerminateProcess(hProcess, NO_ERROR);
CloseHandle(hProcess);
break;
case 2:
{
HANDLE tProcess;
cout << "1-Процесс реального времени " << endl;
cout << "2-Процесс высокий " << endl;
cout << "3-Процесс выше среднего " << endl;
cout << "4-Процесс средний " << endl;
cout << "5-Процесс ниже среднего" << endl;
cout << "6-Процесс низкий" << endl;
cin >> i;
if (i < 7)
switch (i)
{
case 1:
{
cerr << "Введите ID Процеса стобы изменить приоретет до реального времени" <<endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, REALTIME_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
case 2:
{
cerr << "Введите ID Процеса стобы изменить приоретет до вышеприорететного" << endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, HIGH_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
case 3:
{
cerr << "Введите ID Процеса стобы изменить приоретет до выше нормального" << endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, ABOVE_NORMAL_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
case 4:
{
cerr << "Введите ID Процеса стобы изменить приоретет до нормального" << endl ;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, NORMAL_PRIORITY_CLASS
);
CloseHandle(tProcess);
break;
}
case 5:
{
cerr << "Введите ID Процеса стобы изменить приоретет до ниже нормального" << endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, BELOW_NORMAL_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
case 6:
{
cerr << "Введите ID Процеса стобы изменить приоретет до ниже нормального" << endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, IDLE_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
break;
}
}
case 0:
cerr << "Выход" << endl;
q = 0;
system("pause");
system("cls");
break;
}
}
}
BOOL GetProcessList()
{
HANDLE hProcessSnap;
HANDLE hProcess;
PROCESSENTRY32 pe32;
DWORD dwPriorityClass;
// снимок всех процесссов в системе
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
printError(TEXT("CreateToolhelp32Snapshot of processes"));
return(FALSE);
}
// Установить размер структуры перед ее использованием
pe32.dwSize = sizeof(PROCESSENTRY32);
// Получить информацию о первом процессе,
// И выход в случае неудачи
if (!Process32First(hProcessSnap, &pe32))
{
printError(TEXT("Process32First")); // Показать причину сбоя
CloseHandle(hProcessSnap); // очистить объект снимка
return(FALSE);
}
// Пройдитесь снимок процессов, и
// вывод
//Информация о каждом процессе в свою очередь;
do
{
_tprintf(TEXT("nИмя процесса: %s"), pe32.szExeFile);
// Получить класс приоритета
dwPriorityClass = 0;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
cerr << "n ID процесса =t" << pe32.th32ProcessID;
cerr << "n ID родительского процессa =t" << pe32.th32ParentProcessID;
cerr << "n Данные приоретета =t" << pe32.pcPriClassBase;
// List the modules and threads associated with this
cerr << "n=============================================================";
Sleep(150);
} while (Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
return(TRUE);
}
void printError(TCHAR* msg)
{
DWORD eNum;
TCHAR sysMsg[256];
TCHAR* p;
eNum = GetLastError();
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, eNum,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
sysMsg, 256, NULL);
// Trim the end of the line and terminate it with a null
p = sysMsg;
while ((*p > 31) || (*p == 9))
++p;
do { *p = 0; } while ((p >= sysMsg) &&
((*p == '.') || (*p < 33)));
// Display the message
_tprintf(TEXT("n WARNING: %s failed with error %d (%s)"), msg, eNum, sysMsg);
}
#include <windows.h>
#include <tlhelp32.h>
#include <tchar.h>
#include <iostream>
using namespace std;
// Forward declarations:
BOOL GetProcessList();
void printError(TCHAR* msg);
int main(void)
{
setlocale(LC_ALL, "rus");
int q = 1, i = 0, r = 0;
char IdPr[5];
GetProcessList();
cerr << endl;
while (q)
{
cout << "1-завершение процесса " << endl;
cout << "2-понижение приоретета" << endl;
cout << "0-выход" << endl;
cin >> i;
if (i < 4)
switch (i)
{
case 1:
HANDLE hProcess;
BOOL pid;
cerr << "Введите ID Процеса 4тобы убить" << endl << endl;
IdPr[0] = 0;
cin >> pid;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
TerminateProcess(hProcess, NO_ERROR);
CloseHandle(hProcess);
break;
case 2:
{
HANDLE tProcess;
cout << "1-Процесс реального времени " << endl;
cout << "2-Процесс высокий " << endl;
cout << "3-Процесс выше среднего " << endl;
cout << "4-Процесс средний " << endl;
cout << "5-Процесс ниже среднего" << endl;
cout << "6-Процесс низкий" << endl;
cin >> i;
if (i < 7)
switch (i)
{
case 1:
{
cerr << "Введите ID Процеса стобы изменить приоретет до реального времени" <<endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, REALTIME_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
case 2:
{
cerr << "Введите ID Процеса стобы изменить приоретет до вышеприорететного" << endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, HIGH_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
case 3:
{
cerr << "Введите ID Процеса стобы изменить приоретет до выше нормального" << endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, ABOVE_NORMAL_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
case 4:
{
cerr << "Введите ID Процеса стобы изменить приоретет до нормального" << endl ;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, NORMAL_PRIORITY_CLASS
);
CloseHandle(tProcess);
break;
}
case 5:
{
cerr << "Введите ID Процеса стобы изменить приоретет до ниже нормального" << endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, BELOW_NORMAL_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
case 6:
{
cerr << "Введите ID Процеса стобы изменить приоретет до ниже нормального" << endl;
IdPr[0] = 0;
cin >> pid;
tProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
SetPriorityClass(tProcess, IDLE_PRIORITY_CLASS);
CloseHandle(tProcess);
break;
}
break;
}
}
case 0:
cerr << "Выход" << endl;
q = 0;
system("pause");
system("cls");
break;
}
}
}
BOOL GetProcessList()
{
HANDLE hProcessSnap;
HANDLE hProcess;
PROCESSENTRY32 pe32;
DWORD dwPriorityClass;
// снимок всех процесссов в системе
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
printError(TEXT("CreateToolhelp32Snapshot of processes"));
return(FALSE);
}
// Установить размер структуры перед ее использованием
pe32.dwSize = sizeof(PROCESSENTRY32);
// Получить информацию о первом процессе,
// И выход в случае неудачи
if (!Process32First(hProcessSnap, &pe32))
{
printError(TEXT("Process32First")); // Показать причину сбоя
CloseHandle(hProcessSnap); // очистить объект снимка
return(FALSE);
}
// Пройдитесь снимок процессов, и
// вывод
//Информация о каждом процессе в свою очередь;
do
{
_tprintf(TEXT("nИмя процесса: %s"), pe32.szExeFile);
// Получить класс приоритета
dwPriorityClass = 0;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
cerr << "n ID процесса =t" << pe32.th32ProcessID;
cerr << "n ID родительского процессa =t" << pe32.th32ParentProcessID;
cerr << "n Данные приоретета =t" << pe32.pcPriClassBase;
// List the modules and threads associated with this
cerr << "n=============================================================";
Sleep(150);
} while (Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
return(TRUE);
}
void printError(TCHAR* msg)
{
DWORD eNum;
TCHAR sysMsg[256];
TCHAR* p;
eNum = GetLastError();
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, eNum,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
sysMsg, 256, NULL);
// Trim the end of the line and terminate it with a null
p = sysMsg;
while ((*p > 31) || (*p == 9))
++p;
do { *p = 0; } while ((p >= sysMsg) &&
((*p == '.') || (*p < 33)));
// Display the message
_tprintf(TEXT("n WARNING: %s failed with error %d (%s)"), msg, eNum, sysMsg);
}