Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2019, 21:44   #1
DanilaJ
Пользователь
 
Регистрация: 20.02.2019
Сообщений: 10
Вопрос Нужно определить приоритет процесса по его ИД

Для выбранного процесса ( по его идентификатору ) вывести его приоритет.(Опыт программирования на C++ 2 дня)

Код:
void printPriorityProcess(int d) 
{
	HANDLE Hs = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	if (INVALID_HANDLE_VALUE == Hs) {
		return;
	}
	PROCESSENTRY32 P;
	P.dwSize = sizeof(PROCESSENTRY32);
	if (Process32First(Hs, &P))
	{
		do
		{
			if (P.th32ProcessID == d)
			{
				HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, P.th32ProcessID);
				DWORD res = GetPriorityClass(hProcess);
				switch (res)
				{
				case HIGH_PRIORITY_CLASS:
					cout<<"HIGH_PRIORITY_CLASS";
					break;
				case IDLE_PRIORITY_CLASS:
					cout<<"IDLE_PRIORITY_CLASS";
					break;
				case NORMAL_PRIORITY_CLASS:
					cout<<"NORMAL_PRIORITY_CLASS";
					break;
				case REALTIME_PRIORITY_CLASS:
					cout<<"REALTIME_PRIORITY_CLASS";
					break;
				default:
					cout<<"Unknown priority class";
					break;
				}
			}
		} while (Process32Next(Hs, &P));
		CloseHandle(Hs);
	}
}
DanilaJ вне форума Ответить с цитированием
Старый 20.02.2019, 22:35   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

И в чем проблема?
waleri вне форума Ответить с цитированием
Старый 20.02.2019, 22:37   #3
DanilaJ
Пользователь
 
Регистрация: 20.02.2019
Сообщений: 10
По умолчанию

При любом id ответ всегда cout<<"Unknown priority class";
DanilaJ вне форума Ответить с цитированием
Старый 20.02.2019, 22:39   #4
DanilaJ
Пользователь
 
Регистрация: 20.02.2019
Сообщений: 10
По умолчанию

Хм,только что попробовал получилось
DanilaJ вне форума Ответить с цитированием
Старый 20.02.2019, 22:39   #5
DanilaJ
Пользователь
 
Регистрация: 20.02.2019
Сообщений: 10
По умолчанию

Чудеса какие-то
DanilaJ вне форума Ответить с цитированием
Старый 20.02.2019, 22:42   #6
DanilaJ
Пользователь
 
Регистрация: 20.02.2019
Сообщений: 10
По умолчанию

Хотя я наверное просто не все приоритеты написал в case поэтому использует default
DanilaJ вне форума Ответить с цитированием
Старый 21.02.2019, 08:56   #7
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

OpenProcess сможет открыть очень немногие процессы. Особенно без прав администратора. При этом, если вы компилируете свой код в 32 бит, то программа вряд ли откроет 64-битные процессы. Желательно проверять открылся ли процесс вообще перед чтением его приоритета.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приоритет процесса P@SH@ Win Api 9 13.05.2014 21:48
Приоритет для процесса Li4uk Помощь студентам 0 27.05.2010 21:02
Как изменить приоритет процесса [delphi] f1xed Помощь студентам 1 09.02.2010 14:31
По пути к файлу определить pid процесса Var17 Win Api 1 15.12.2009 11:33
Приоритет чужого процесса (консультация) Air Win Api 9 06.03.2008 20:05