mutex pyhandle terminieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Zack
User
Beiträge: 47
Registriert: Dienstag 24. April 2007, 11:19

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]
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Zack
User
Beiträge: 47
Registriert: Dienstag 24. April 2007, 11:19

Dank dir, hat mir sehr geholfen. Damit hats funktioniert.
mfg
Zack
Antworten