Проверьте, существует ли PID в Windows с Python, не требуя библиотек
Есть ли способ проверить, существует ли PID в Windows с Python, не требуя библиотек? Как?
2 ответа
Решение
Это решается с маленькой чашкой WINAPI.
def pid_running(pid):
import ctypes
kernel32 = ctypes.windll.kernel32
SYNCHRONIZE = 0x100000
process = kernel32.OpenProcess(SYNCHRONIZE, 0, pid)
if process != 0:
kernel32.CloseHandle(process)
return True
else:
return False
Это работает в моей системе..
>>> import subprocess
>>> out = subprocess.check_output(["tasklist","/fi","PID eq 1234"]).strip()
>>> if out == "INFO: No tasks are running which match the specified criteria.":
... print "No such PID :D"
...
No such PID :D