[Tutor] Watch and control access to an executable

Andre Roberge andre.roberge at gmail.com
Sat Apr 8 15:33:25 CEST 2006


On 4/8/06, Alan Gauld <alan.gauld at freenet.co.uk> wrote:
> > Desktop to the executable). The problem is, only *one* person at a time
> > should run the program.

[snip]
>
> The usual way of doing this is simply to create an empty file
> when the program starts and delete it when the program closes
> In python:
>
Couldn't this approach cause problems if the Python program crashes,
leaving behind the empty file?

However, there is a Cookbook solution that does, I believe, that what
the original poster asked:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/67663

It is actually so short that I can even reproduce it below.
=========
from win32event import CreateMutex
from win32api import GetLastError
from winerror import ERROR_ALREADY_EXISTS
from sys import exit

handle = CreateMutex ( None, 1, 'A unique mutex name' )

if GetLastError ( ) == ERROR_ALREADY_EXISTS:
# take appropriate action if this is the second
# instance of this script; for example,
    print 'Oh! dear, I exist already.'
    exit ( 1 )
============
A detailed explanation (of a slightly modified version) can be found
in the second edition of the Python Cookbook [Recipe 9.9].

André


More information about the Tutor mailing list