|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
||||||
Список процессов и пользователей30.07.2015, 17:20. Показов 10767. Ответов 47
Метки нет (Все метки)
Добрый вечер,
Я в WinAPI новичок, потому хотел бы попросить помощи в программе у более опытных программистов. Необходимо выдать список процессов, их id, имя пользователя, запустившего процесс, а также найти свой собственный процесс. Покопавшись в MSDN и других источниках, написал такой
P.S. Сильно по голове не бейте, нуб пока ещё
0
|
||||||
| 30.07.2015, 17:20 | |
|
Ответы с готовыми решениями:
47
Список процессов. Не создается список процессов Список запущеных процессов |
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
||||||
| 10.08.2015, 02:41 [ТС] | ||||||
|
Возвращаясь к
По моей логике OpenProcessToken и SetPrivilege надо бы местами поменять, но тогда ругается на неинициализированную переменную hToken.
0
|
||||||
|
Ушел с форума
|
|
| 10.08.2015, 09:14 | |
|
Вы тут что-то странное делаете. Включать привилегию нужно для своего процесса.
0
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
||||||
| 10.08.2015, 12:18 [ТС] | ||||||
0
|
||||||
|
Ушел с форума
|
|
| 10.08.2015, 13:57 | |
|
Не, это какая-то каша.
Вашему процессу (и только вашему) нужна привилегия SE_DEBUG_NAME, чтобы иметь возможность нормально работать с OpenProcess. OpenProcessToken здесь вообще не при чем.
0
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
|
| 11.08.2015, 00:24 [ТС] | |
|
Что-то туплю.
OpenProcess возвращает хендл процесса. GetCurrentProcess - его частный случай для собственного процесса. Однако, в параметрах SetPrivelege только хендл токена. Как всё связать?
0
|
|
|
Ушел с форума
|
|
| 11.08.2015, 08:47 | |
|
Вот:
Enabling and Disabling Privileges in C++ https://msdn.microsoft.com/en-... 85%29.aspx включаете привилегию отладки для своего процесса и потом уже делаете все, что нужно.
0
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
||||||
| 12.08.2015, 01:45 [ТС] | ||||||
|
Как раз эта функция и инициализируется. Вопрос в том, где её верно вызывать и с какими параметрами.
Точнее, параметр; два других очевидны: SE_DEBUG_NAME и TRUE. Корректного вызова функции SetPrivelege только и не хватает для полноценной работы. Добавлено через 29 минут
0
|
||||||
|
Ушел с форума
|
|
| 12.08.2015, 08:51 | |
|
Процесс должен быть запущен от имени администратора.
1
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
|
| 12.08.2015, 12:36 [ТС] | |
|
Спасибо, заработало!
Под кракозябрами СИСТЕМА, вероятно, кодировка не та. А вот почему 2 (на скриншоте только 1 такая) строчки всё равно заполнены мусором? Один из них СИСТЕМА, другой - LOCAL SERVICE
0
|
|
|
Ушел с форума
|
||
| 12.08.2015, 12:42 | ||
|
Например, на Windows 8.1 и выше "смешная" попытка открыть процесс csrss.exe с правами PROCESS_ALL_ACCESS всегда будет заканчиваться неудачей, даже если у вас включена привилегия отладки и есть права администратора или системы (из-за "Protected Processes Light", инфа есть в блоге Alex Ionescu). Вместо PROCESS_ALL_ACCESS ставьте PROCESS_QUERY_LIMITED_INFORMATION (Vista+) или PROCESS_QUERY_INFORMATION (XP, Server 2003).
1
|
||
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
|
| 12.08.2015, 13:05 [ТС] | |
|
Огромное спасибо! Осталось только красоту навести.
Первый опыт с WinAPI, потом, надеюсь, будет меньше вопросов.
0
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
|||||||||||
| 14.08.2015, 12:25 [ТС] | |||||||||||
|
Всё-таки вопрос есть.
В попытке избавиться от кракозябр, решил реализовать чтение имени пользователя в Unicode. Версия ANSI (рабочая, но с кракозябрами):
0
|
|||||||||||
|
Ушел с форума
|
|
| 14.08.2015, 13:27 | |
|
Проблема не в буфере, а в том, что вызов КАЖДОЙ функции, без исключения,
нужно проверять на успешность/неуспешность. Только тогда будет гарантия, что поток исполнения доходит до определенной точки без побочных эффектов.
0
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
||||||
| 14.08.2015, 20:04 [ТС] | ||||||
|
Хм, а вот это интересно:
OpenProcessToken error 5 GetTokenInformation error 6 LookupAccountSid error 87 Однако, работе ANSI-функции это не мешает (что в ANSI-, что в Unicode- функции соответствующие значения GetLastError одинаковые) Проверку реализовал:
0
|
||||||
|
Ушел с форума
|
|
| 14.08.2015, 20:18 | |
|
Ну попробуйте OpenProcess вызывать с PROCESS_QUERY_INFORMATION.
В документации сказано, что эти права требуются для того, чтобы потом успешно вызвать OpenProcessToken. Хотя у меня работало и с PROCESS_QUERY_LIMITED_INFORMATION.
0
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
||
| 14.08.2015, 20:33 [ТС] | ||
|
OpenProcess error 5 OpenProcessToken error 6 GetTokenInformation error 6 LookupAccountSid error 87 Добавлено через 6 минут Но ANSI-функция по-прежнему выполняется даже с ошибкой OpenProcess. Короче, ноль реакции.
0
|
||
|
Ушел с форума
|
|
| 14.08.2015, 20:38 | |
|
А привилегия отладки у процесса есть ?
В этом случае OpenProcess должен выполняться успешно в большинстве случаев. Я недавно выкладывал код, решающий аналогичную задачу: Не получается сгруппировать запущенные процессы по ключу SID
0
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
|||||||
| 14.08.2015, 21:46 [ТС] | |||||||
0
|
|||||||
|
Ушел с форума
|
|
| 14.08.2015, 22:20 | |
|
А что за ID процесса, который не дает себя открыть ?
Часом, не 0 или 4 ?
0
|
|
|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
|
| 14.08.2015, 22:43 [ТС] | |
|
Ага, 4
0
|
|
| 14.08.2015, 22:43 | |
|
Командный файл, выводящий список пользователей в системе и их процессов
Получить список пользователей, относящихся к группе с наибольшим числом пользователей Процедура Shell / подсчет количества процессов пользователей. Разработка программного обеспечения для автоматизации процессов учета и регистрации заявок пользователей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью.
Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
|
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
|
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
|