0
下面是我的代碼來讀取註冊表配置單元。但我遇到了一件奇怪的事情。有時功能起作用,有時不起作用(返回錯誤代碼2)。我注意到,如果我使用regedit首先查看註冊表項,然後關閉註冊表編輯器,然後再次運行腳本,它可以工作。有沒有人遇到過這樣的錯誤?win32api.RegOpenKeyEx失敗,錯誤代碼2有時
以下是我的功能。
def _getMusicRegistryValue(self, keyName):
value = ""
aKey = None
try:
HKLMKey = win32api.RegConnectRegistry(None, win32con.HKEY_LOCAL_MACHINE)
qqMusic = r"SOFTWARE\\Tencent\\QQMusic"
aKey = win32api.RegOpenKeyEx(HKLMKey, qqMusic)
#print 'aKey = ',aKey
(value,valueType) = win32api.RegQueryValueEx(aKey, keyName)
#installPath = "%sQQMusic.exe" %install
#print installPath
except Exception as data:
self.logger.error('*FAIL*: Exception happened when reading registry hive.Exception details: %s' %data)
errMsg = win32api.FormatMessage(data[0])
self.logger.error(errMsg)
#raise Exception("Read registry failed, QQMusic is not installed.")
finally:
if aKey is not None:
win32api.RegCloseKey(aKey)
#print 'close key'
if HKLMKey is not None:
win32api.RegCloseKey(HKLMKey)
return value
我試圖關閉所有的關鍵處理程序,但它仍然有一些問題。
謝謝曼德爾。你是對的。我錯誤地使用了\\在reg路徑中,這應該是\ – bettermanlu 2012-03-06 05:13:16