Seite 1 von 1

mutex pyhandle terminieren

Verfasst: Freitag 29. Juni 2007, 10:57
von Zack
Moin moin,
folgende Sachlage:

Abfangen von mehrmaligem ausführen meines Scriptes.
Gedachte umsetzung mit:
1. - win32event.CreateMutex()
2. - win32api.TerminateProcess()

Leider schlugt 2. nicht das pyhandle von 1.

Hier der letzter Stand meines Versuches:

Code: Alles auswählen

import win32event, win32api

mutex = win32event.CreateMutex(None, 0, "__testmutex__")
print "mutex: ",mutex.handle
if (win32api.GetLastError() == 183):    #183 = "mutex exist"
    print"Opened existing mutex object", mutex
    if raw_input("Prozess Terminieren? ") == "y":
        #PROCESS_TERMINATE = 1
        #mutex = win32api.OpenProcess(PROCESS_TERMINATE, False, mutex.handle)
        win32api.TerminateProcess(mutex.handle, -1)
        win32api.CloseHandle(mutex.handle)

raw_input("Ende")
Result:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\mutextest.py", line 10, in <module>
    win32api.TerminateProcess(mutex.handle, -1)
pywintypes.error: (6, 'TerminateProcess', 'The handle is invalid.')
Ich glaube mein Denkfehler liegt in der Interpretierung von einem Process-handle und dem pyhandle, kann das aber auch nicht wirklich unterscheiden.
Vielleicht kann mir ja einer von euch weiterhelfen. Danke im Vorraus.
gruss zack[/code]

Re: mutex pyhandle terminieren

Verfasst: Freitag 29. Juni 2007, 11:11
von gerold
Zack hat geschrieben:Abfangen von mehrmaligem ausführen meines Scriptes.
Hi Zack!

Warum fragst du nicht nach einer Lösung für dein Problem anstatt danach zu fragen, was du falsch machen könntest?

Wenn ich dich nicht total falsch verstanden habe, dann suchst du evt. nach so etwas:

http://www.python-forum.de/topic-8282.html

mfg
Gerold
:-)

Verfasst: Freitag 6. Juli 2007, 10:48
von Zack
Dank dir, hat mir sehr geholfen. Damit hats funktioniert.
mfg
Zack