0
我一直在使用下面的食谱,只允许我的应用程序的单一实例: http://code.activestate.com/recipes/474070-creating-a-single-instance-application/如何创建一个互斥单个实例Python应用程序
配方使用填充有一些是“mutexname”变量互斥值。如果我想创建自己独特的“互斥锁”,我该怎么做?另外,这个配方如何工作?谁能解释一下?
感谢
我一直在使用下面的食谱,只允许我的应用程序的单一实例: http://code.activestate.com/recipes/474070-creating-a-single-instance-application/如何创建一个互斥单个实例Python应用程序
配方使用填充有一些是“mutexname”变量互斥值。如果我想创建自己独特的“互斥锁”,我该怎么做?另外,这个配方如何工作?谁能解释一下?
感谢
配方使用Win32 API函数CreateMutex创建一个名为互斥。互斥体是一个系统对象,它存在于您的应用程序的进程之外。当使用已存在的名称调用CreateMutex时,GetLastError返回ERROR_ALREADY_EXISTS。配方检查此返回值,如果存在,则退出。您应该更改配方以使用不同的字符串作为mutexname。选择一些其他人不太可能锁定的东西,因为如果他们这样做,你的应用程序将无法启动。
字符串可以是任何值或长度吗?此外,它必须是ASCII字符,还是它也可以由字节组成? –
我真的不知道你想在“ASCII字符”和“字节”之间做出什么样的区别。在Python 2.x中,有两种可以称为字符串的东西:'str',它实际上是一个字节序列,'unicode'是一串字符(Unicode代码点)。该配方显示使用'str',因为默认情况下Windows API是非Unicode的。 “CreateMutex”的Windows API文档声称:“该名称仅限于MAX_PATH字符,并且可以包含除反斜杠路径分隔符(\)之外的任何字符。名称比较区分大小写。” –