|
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
|
||||||
Список процессов и пользователей30.07.2015, 17:20. Показов 11009. Ответов 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 / подсчет количества процессов пользователей. Разработка программного обеспечения для автоматизации процессов учета и регистрации заявок пользователей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|