win32 process name
Andrey Ivanov
ai2009 at yandex.ru
Wed Dec 22 04:27:31 EST 2004
[phil]
> I need to know if a process is running.
> not just python.exe
> but python.exe myapp
> from win32all
> EnumProcesses gives me the pids, then
> OpenProcess(pid) gives me a handle.
> Then what?
> GetModuleFileNameEX?
It won't do the right thing for you. As far as I know,
GetModuleFileNameEx() returns the name of a particular DLL, but what
you need to know is a *commandline*. I think that this is not possible
at all. Microsoft's examples use named mutexes to test whether the
process is already running or not. It is quite easy. Here's a quick
example:
import sys
import win32event
STANDARD_ACCESS_READ = 131072
mutex_handle = None
try:
mutex_handle = win32event.OpenMutex(STANDARD_ACCESS_READ, False, "Test")
except:
pass
if mutex_handle:
sys.exit("Instance is already running")
else:
mutex_handle = win32event.CreateMutex(None, False, "Test")
try:
while 1:
pass
except:
pass
--
Andrey
More information about the Python-list
mailing list