2011-10-15 26 views

回答

1

配方使用Win32 API函数CreateMutex创建一个名为互斥。互斥体是一个系统对象,它存在于您的应用程序的进程之外。当使用已存在的名称调用CreateMutex时,GetLastError返回ERROR_ALREADY_EXISTS。配方检查此返回值,如果存在,则退出。您应该更改配方以使用不同的字符串作为mutexname。选择一些其他人不太可能锁定的东西,因为如果他们这样做,你的应用程序将无法启动。

+0

字符串可以是任何值或长度吗?此外,它必须是ASCII字符,还是它也可以由字节组成? –

+0

我真的不知道你想在“ASCII字符”和“字节”之间做出什么样的区别。在Python 2.x中,有两种可以称为字符串的东西:'str',它实际上是一个字节序列,'unicode'是一串字符(Unicode代码点)。该配方显示使用'str',因为默认情况下Windows API是非Unicode的。 “CreateMutex”的Windows API文档声称:“该名称仅限于MAX_PATH字符,并且可以包含除反斜杠路径分隔符(\)之外的任何字符。名称比较区分大小写。” –

相关问题