2011-10-15 28 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字符,並且可以包含除反斜槓路徑分隔符(\)之外的任何字符。名稱比較區分大小寫。」 –

相關問題