Używam aplikacji ShellExecuteEx
do uruchamiania aplikacji. Po pomyślnym uruchomieniu, należy przeczytać TShellExecuteInfo.hProcess
, aby uzyskać uchwyt rozpoczętego procesu.Sposób sprawdzania, czy dany proces działa przy posiadanym uchwycie.
Chciałbym okresowo sprawdzić, czy proces uruchomiony przez moją aplikację nadal działa. Dwa lub więcej procesów o tej samej nazwie może działać jednocześnie i chcę mieć pewność, że moja aplikacja sprawdza poprawny proces.
Chcę móc to zrobić w systemach Windows z Windows 2000 i wyżej.
Wiem, że istnieje funkcja WinAPI GetProcessId
który robi dokładnie to, co chcę, ale to nie obsługuje systemu Windows 2000.
Dziękuję za odpowiedzi.
Ponieważ masz do czynienia z procesem, nie wiem, co masz na myśli przez "chcę mieć pewność, że moja aplikacja sprawdza prawidłowy proces". Jak może to nie być prawidłowy proces, skoro masz już uchwyt? –
@David Czułem, że muszę podkreślić moje wymagania, na wypadek gdyby ktoś mógł zaproponować mi rozwiązanie takie jak to: http://www.delphitricks.com/source-code/windows/check_if_a_process_is_running.html – Wodzu