Форум » Для флейма » Различить процессы » Ответить

Различить процессы

fil: Приветствую ! При запуске прога должна проверить не была ли она запущена ранее и не осталассь ли она висеть процессом (без окон). В случае с повисшими процессами типа Word/Excel проблем нет, а вот как отличить одноименные - вновь запущенный процесс от предыдущего висящего ?

Ответов - 9

PSP: Теоретически, нужно получить PID текущего процесса и убить все остальные с другим PID

Andrey: А чем плоха функция из МиниГуи MiniGUI\SAMPLES\Advanced\IsExeRunning ?

fil: Ну получил я PID's обих процессов.. кто первый, а кто торой непонятно. Вот ежели где через WMI время запуска прочитать. Но я такого параметра не нашел


fil: Причем здесь isExeRunning. Мне нужно подлавливать висящий процесс

Dima: fil пишет: При запуске прога должна проверить не была ли она запущена ли оеа была ранее Прога твоя ?

Dima: fil пишет: Причем здесь isExeRunning. Мне нужно подлавливать висящий процесс Если прога твоя то isExeRunning позволит предотвратить повторный запуск программы , тогда и подавливать ни чего не нужно.

PSP: fil пишет: Ну получил я PID's обих процессов.. кто первый, а кто торой непонятно. Вот ежели где через WMI время запуска прочитать. Но я такого параметра не нашел В winapi есть функция GetCurrentProcessId: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683180%28v=vs.85%29.aspx А есть GetProcessId: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms683215%28v=vs.85%29.aspx Можно ж с их помощью решить эту задачу? Правда код на С не напишу ))), сорри.

fil: Dima, ты не понял Была запущена прога (моя). По тем или иным причинам она прекратила работу. Окна нет, но процесс в таскюаре висит. Пока этот процесс висит запустить новый экземпляр прги нельзя. Ну покажет мне sExeRunning, что прога уже запущена и чего ? Значит я должен залезть в таскбар и руками этот процесс закрыть. Неохота !

fil: PSP. спасибо ! Чего-то я проглядел твой пост за GetCurrentProcessId. Это то, что надо. Чtрез WMI найду одноименные процессы(оба определятся как висящие - у нового еще нет окон у старого уже нет) и зная PID текущего удалю старый



полная версия страницы