Ниже приведен мой код для чтения куста реестра.Но я встретил одну странную вещь.Иногда функция работает, иногда нет (верните код ошибки 2).Я заметил, что если я сначала использую regedit для просмотра раздела реестра, затем закрываю regedit, а затем снова запускаю скрипт, он работает.Кто-нибудь сталкивался с такой ошибкой раньше?
Ниже моя функция.
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
Я попытался закрыть все обработчики клавиш, но все еще есть некоторые проблемы.