def test_devmgr(): print(grep_registry('Presonus')) # MANUALLY FOUND # HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run to_delete = r''' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{554BB593-3543-4AEB-A192-2AC87EC3FF31}_is1 HKEY_LOCAL_MACHINE\SOFTWARE\PreSonus\Devices\audioboxdevice HKEY_LOCAL_MACHINE\SOFTWARE\PreSonus HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PreSonus\Devices\audioboxdevice HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PreSonus ''' legacy_item = r"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root" #devmgr_key = r"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" presonus = r'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{40EA0DC9-6AAB-440D-ACE5-C079DF364E23}' presonus = r'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Class' dm1 = r'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class' dm2 = r'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Class' dm1_subkeys = registry.get_subkeys(dm1) dm2_subkeys = registry.get_subkeys(dm2) dvmgr = {} for (dm, subkey_list) in [(dm1, dm1_subkeys), (dm2, dm2_subkeys)]: for skey in subkey_list: key = dm + '\\' + skey key_subkeys = registry.get_subkeys(key) for _kskey in key_subkeys: key2 = key + '\\' + _kskey Defaults2 = registry.get_key_value(key2, '(Default)') DriverDesc = registry.get_key_value(key2, 'DriverDesc') provider_name = registry.get_key_value(key2, 'ProviderName') if Defaults2 is None and DriverDesc is None: continue dvmgr[key2] = (DriverDesc, Defaults2, provider_name, class_desc) _class = registry.get_key_value(key, 'Class') class_desc = registry.get_key_value(key, 'ClassDesc') defaults = registry.get_key_value(key, '(Default)') dvmgr[key] = (_class, defaults, class_desc) def multifind(str, to_find): fmt_str = repr(str).lower() return [fmt_str.find(_) != -1 for _ in to_find] def multifind_joint(str, to_find): return [all(multifind(str, to_find)) for to_find in to_find_joint] to_find = [u'audiobox', u'presonus', 'unknown usb'] to_find_joint = [(u'audio', u'box'), (u'pre', u'sonus'), (u'unknown', 'usb')] to_find = [_.lower() for _ in to_find] tkey = 'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{40EA0DC9-6AAB-440D-ACE5-C079DF364E23}' for key, val in dvmgr.iteritems(): in_find = multifind(val, to_find) + multifind(key, to_find) in_multifind = multifind_joint( val, to_find_joint) + multifind_joint(key, to_find_joint) # print(val) if not (any(in_find) or any(in_multifind)): continue #print('%r, %r' % (in_find, in_multifind)) print(key + ' = ' + repr(val)) if tkey == key: print('^^^ PRESONUS HERE ^^^') # for key in devmgr_keys: # registry.print_key(key) #driver_key = r"'HKEY_LOCAL_MACHINE\Drivers'" # registry.print_key(legacy_item) os.environ['devmgr_show_nonpresent_devices'] = '1'
def test_devmgr(): print(grep_registry('Presonus')) # MANUALLY FOUND # HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run to_delete = r''' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{554BB593-3543-4AEB-A192-2AC87EC3FF31}_is1 HKEY_LOCAL_MACHINE\SOFTWARE\PreSonus\Devices\audioboxdevice HKEY_LOCAL_MACHINE\SOFTWARE\PreSonus HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PreSonus\Devices\audioboxdevice HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PreSonus ''' legacy_item = r"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root" #devmgr_key = r"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" presonus = r'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{40EA0DC9-6AAB-440D-ACE5-C079DF364E23}' presonus = r'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Class' dm1 = r'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class' dm2 = r'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Class' dm1_subkeys = registry.get_subkeys(dm1) dm2_subkeys = registry.get_subkeys(dm2) dvmgr = {} for (dm, subkey_list) in [(dm1, dm1_subkeys), (dm2, dm2_subkeys)]: for skey in subkey_list: key = dm + '\\' + skey key_subkeys = registry.get_subkeys(key) for _kskey in key_subkeys: key2 = key + '\\' + _kskey Defaults2 = registry.get_key_value(key2, '(Default)') DriverDesc = registry.get_key_value(key2, 'DriverDesc') provider_name = registry.get_key_value(key2, 'ProviderName') if Defaults2 is None and DriverDesc is None: continue dvmgr[key2] = (DriverDesc, Defaults2, provider_name, class_desc) _class = registry.get_key_value(key, 'Class') class_desc = registry.get_key_value(key, 'ClassDesc') defaults = registry.get_key_value(key, '(Default)') dvmgr[key] = (_class, defaults, class_desc) def multifind(str, to_find): fmt_str = repr(str).lower() return [fmt_str.find(_) != -1 for _ in to_find] def multifind_joint(str, to_find): return [all(multifind(str, to_find)) for to_find in to_find_joint] to_find = [u'audiobox', u'presonus', 'unknown usb'] to_find_joint = [(u'audio', u'box'), (u'pre', u'sonus'), (u'unknown', 'usb')] to_find = [_.lower() for _ in to_find] tkey = 'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{40EA0DC9-6AAB-440D-ACE5-C079DF364E23}' for key, val in dvmgr.iteritems(): in_find = multifind(val, to_find) + multifind(key, to_find) in_multifind = multifind_joint(val, to_find_joint) + multifind_joint( key, to_find_joint) # print(val) if not (any(in_find) or any(in_multifind)): continue #print('%r, %r' % (in_find, in_multifind)) print(key + ' = ' + repr(val)) if tkey == key: print('^^^ PRESONUS HERE ^^^') # for key in devmgr_keys: # registry.print_key(key) #driver_key = r"'HKEY_LOCAL_MACHINE\Drivers'" # registry.print_key(legacy_item) os.environ['devmgr_show_nonpresent_devices'] = '1'
def get_env_var(var): try: return registry.get_key_value(regkey('LOCAL_ENVVAR'), var) except WindowsError as ex: print(repr(ex)) raise