2 / 1 / 1
Регистрация: 11.03.2018
Сообщений: 96
1

Определить среди процессов запущенную программу

25.02.2019, 19:40. Показов 1507. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте! Суть моего вопроса состоит в заголовке к данной теме. У меня есть полученный вектор со всеми запущенными .exe процессами. Однако не все из них моя работающая программа. То есть у меня запущен хром, у меня есть этот процесс, но есть и куча других процессов, которые не являются запущенной программой. Вот как определить обычный процесс от работающей программы?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2019, 19:40
Ответы с готовыми решениями:

Найти среди выполняющихся процессов имена процессов, имеющих одинаковые ProductVersion
нахождения среди выполняющихся процессов имен процессов, имеющих одинаковые ProductVersion. ...

Нахождение среди выполняющихся процессов имён процессов с наименьшим значением BasePriority
Разработать командлет для нахождения среди выполняющихся процессов имен процессов с наименьшим...

Нахождение среди выполняющихся процессов имён процессов, у которых значения параметра WorkingSet одинаковы
Необходимо создать командлет, который находит среди выполняющихся процессов имена процессов, у...

Нахождение среди выполняющихся процессов имён 3-х процессов, использовавших более всего процессорного времени
Помогите выполнить задание! Нахождения среди выполняющихся процессов имен трех процессов,...

15
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
25.02.2019, 19:49 2
Цитата Сообщение от ORK_ Посмотреть сообщение
Вот как определить обычный процесс от работающей программы?
Что вы называете обычным процессом, а что работающей программой? Вроде как нет разницы между процессом вашей программы и десятками других, запущенных в это время в системе.

Цитата Сообщение от ORK_ Посмотреть сообщение
Определить среди процессов запущенную программу
Что такое список процессов? И какую задачу требуется решить? Программа может получить ID своего процесса соответствующей функцией. ID дочернего процесса получают при его запуске. С остальными процессами можно применить фильтрацию по имени исполняемого файла, например.
0
2 / 1 / 1
Регистрация: 11.03.2018
Сообщений: 96
25.02.2019, 21:03  [ТС] 3
valen10, Вот смотрите, это все мои .exe процессы

Кликните здесь для просмотра всего текста
smss.exe
wininit.exe
services.exe
lsass.exe
IMFsrv.exe
spoolsv.exe
AGMService.exe
ijplmsvc.exe
mqsvc.exe
sqlservr.exe
SecurityHealthService.exe
sqlwriter.exe
ViakaraokeSrv.exe
dasHost.exe
SearchIndexer.exe
GoogleCrashHandler.exe
sedsvc.exe
MsMpEng.exe
NisSrv.exe
ASCService.exe
winlogon.exe
dwm.exe
nvxdsync.exe
sihost.exe
Monitor.exe
taskhostw.exe
explorer.exe
ShellExperienceHost.exe
dllhost.exe
SearchUI.exe
RuntimeBroker.exe
ApplicationFrameHost.exe
MicrosoftEdge.exe
browser_broker.exe
MicrosoftEdgeCP.exe
SettingSyncHost.exe
ctfmon.exe
nvtray.exe
MSASCuiL.exe
NvBackend.exe
jusched.exe
SkypeBackgroundHost.exe
jucheck.exe
Video.UI.exe
PubMonitor.exe
AdobeARM.exe
chrome.exe
sedlauncher.exe
conhost.exe
audiodg.exe
Viber.exe
Photoshop.exe
smartscreen.exe
Project1.exe

При это программы 3 у меня запущено : фотошоп, project1 и хром

Добавлено через 3 минуты
valen10, Я просто не знаю как правильно обьяснить. Извените если что то называю не своими именами
0
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
25.02.2019, 21:45 4
Цитата Сообщение от ORK_ Посмотреть сообщение
Вот смотрите, это все мои .exe процессы
Давайте для начала отметим, что это не список процессов. Это список исполняемых файлов, которые послужили образами для создания процессов. Странно, что в этом списке нет повторяющихся элементов (или не заметил?), ведь один и тот же файл может служить образом для нескольких процессов.

Цитата Сообщение от ORK_ Посмотреть сообщение
При это программы 3 у меня запущено : фотошоп, project1 и хром
Дело в том, что остальные процессы тоже запущены, но не вами. Одновременно в системе могут быть запущены десятки процессов, при этом лишь часть из них запускает пользователь, остальные могут запускаться другими системными или пользовательскими процессами.

Теперь вопрос: что из этого списка должно остаться? Только имя вашей программы или имена только вами запущенных процессов?
1
2 / 1 / 1
Регистрация: 11.03.2018
Сообщений: 96
25.02.2019, 21:49  [ТС] 5
valen10, Я их убрал . Было очень много повторяющихся процессов

Добавлено через 21 секунду
Отредактировал для дальнейшего удобства в работе

Добавлено через 1 минуту
valen10, Имена запущенных мною процессов
Мне бы хотя бы знать какую тему рассматривать.Очень много лишнего в интернете нашел на эту тему
0
28 / 21 / 7
Регистрация: 21.01.2019
Сообщений: 110
25.02.2019, 21:52 6
ORK_,
Цитата Сообщение от ORK_ Посмотреть сообщение
Имена запущенных мною процессов
как Вы их запускаете?)
0
2 / 1 / 1
Регистрация: 11.03.2018
Сообщений: 96
25.02.2019, 21:59  [ТС] 7
beep7433, Когда программу запускаю
Создаётся новый процесс. Я немного ошибся
0
28 / 21 / 7
Регистрация: 21.01.2019
Сообщений: 110
25.02.2019, 22:02 8
Перехват winapi через которые запускаешь программы, например CreateProcess. Сам в этом не силен и мало что знаю об этом, но вдруг оно Вам и нужно)
Только как вы определите что это вы процесс запустили, а не левая прога его запустила)
0
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
25.02.2019, 22:10 9
Цитата Сообщение от ORK_ Посмотреть сообщение
Имена запущенных мною процессов
Полагаю, задача не так проста, как кажется. Допустим, можно попробовать отследить то, откуда возник процесс, и выбрать только те из них, что были запущены пользователем.

Давайте посмотрим на поведение процессов. Есть такая программа Process Explorer, с помощью которой можно посмотреть какой процесс откуда появился.
Определить среди процессов запущенную программу

Казалось бы, все просто: запущенные вами процессы порождает explorer.exe. Но постойте, firefox тоже запущен пользователем, почему он оказался в стороне? Оказывается, у него своеобразный способ запуска: firefox.exe -> updater.exe -> firefox.exe, при этом завершенные ранее процессы пропадают, а порожденные ими теряют родителя и поднимаются на верхний уровень. Становится не понятно, был ли процесс запущен системой при загрузке или просто потерял родителя.

А еще сюда попали лишние процессы: VBoxTray.exe и picpick.exe стоят в автозапуске и вручную не запускались.

Так же procexp64.exe - это и есть Process Explorer, открытый из 7zFM.exe, который в свою очередь открыт из браузера. Запущен пользователем, но как это понять? А если закрыть браузер, что станет его источником?
Определить среди процессов запущенную программу

Так и есть: родительский процесс потерян, дочерний поднялся на верхний уровень и отделить его от системного вряд ли теперь получится.

Единственное, что пока приходит на ум: процессы на верхнем уровне порождаются от имени пользователя system (или система в русской локализации), их можно вычеркнуть, остальные считать пользовательскими. А вот как быть с автоматически запускаемыми процессами от имени пользователя?
0
2 / 1 / 1
Регистрация: 11.03.2018
Сообщений: 96
25.02.2019, 22:20  [ТС] 10
valen10, Суть моей программы заключается в том, что бы человек поставил для себя определённые ограничения , например сидеть в хроме или играть не более 2х часов. Таймер отследит сколько времени запущен данный процесс. Если Более двух часов, то должно появиться специальное окно с информацией

Добавлено через 38 секунд
Но нужно определить, как работает приложение в данные момент.
0
28 / 21 / 7
Регистрация: 21.01.2019
Сообщений: 110
25.02.2019, 22:25 11
GetProcessTimes
1
2 / 1 / 1
Регистрация: 11.03.2018
Сообщений: 96
25.02.2019, 22:27  [ТС] 12
beep7433, О, точно. Спасибо
0
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
25.02.2019, 22:28 13
Лучший ответ Сообщение было отмечено ORK_ как решение

Решение

ORK_, тогда может не заморачиваться, а просто с некоторой периодичностью (раз в минуту например) проверять наличие процесса с заданным исполняемым файлом в списке процессов? Если есть в списке, значит процесс запущен.

Ну или отслеживать активное окно, определять, какому процессу оно принадлежит. Если тому, который отслеживаем, то увеличивать суммарное время его использования. Когда натикает 2 часа, бить тревогу.
1
2 / 1 / 1
Регистрация: 11.03.2018
Сообщений: 96
25.02.2019, 22:29  [ТС] 14
valen10, Спасибо вам большое. Буду знать теперь куда двигаться.
0
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
25.02.2019, 22:30 15
Цитата Сообщение от beep7433 Посмотреть сообщение
GetProcessTimes
Что-то не подумал об этом Но время процесса же не говорит о том, что пользователь занят именно им? Могу же я запустить хром, свернуть его и начать игру? При этом будет считаться, что я сижу в интернете.

И обойти слежку можно: закрыл, снова открыл и оп, время пошло сначала
0
28 / 21 / 7
Регистрация: 21.01.2019
Сообщений: 110
25.02.2019, 22:43 16
Цитата Сообщение от valen10 Посмотреть сообщение
И обойти слежку можно: закрыл, снова открыл и оп, время пошло сначала
это смотря как реализовать

Добавлено через 8 минут
Цитата Сообщение от valen10 Посмотреть сообщение
Ну или отслеживать активное окно, определять, какому процессу оно принадлежит. Если тому, который отслеживаем, то увеличивать суммарное время его использования. Когда натикает 2 часа, бить тревогу.
valen10, а что если сделать окно не активным и например так смотреть фильмы в браузере, время будет тикать?
0
25.02.2019, 22:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2019, 22:43
Помогаю со студенческими работами здесь

Скрыть программу запущенную из Дельфи
Здравствуйте! Возникла такая проблема- нада скрыть программу Exe программу запущенную из основной...

Передать сообщение в запущенную программу
Допустим, есть у нас такая программка, которую другое приложение запускает с параметрами....

Загрузка .mp3 в запущенную программу
Доброго времени суток. Я ассоциировал мп3 файлы со своим плеером. все прекрасно запускается. Я хочу...

Как активировать запущенную программу (развернуть)?
Как активировать игру если он запущена, но свернута? Process dota =...

Скрыть запущенную программу из Task Manager-а
С помощю етого прекрасного сайта я поти закончил свой первый проект на VB. Но для полного...

Копия программы (сохранить запущенную программу)
Как программно сделать копию запущенной программы а точнее сохранить запущенную программу!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru