コード例 #1
0
ファイル: rob_helpers_windows.py プロジェクト: Erotemic/local
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'
コード例 #2
0
ファイル: rob_helpers_windows.py プロジェクト: afcarl/local
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'
コード例 #3
0
ファイル: rob_helpers_windows.py プロジェクト: Erotemic/local
def get_env_var(var):
    try:
        return registry.get_key_value(regkey('LOCAL_ENVVAR'), var)
    except WindowsError as ex:
        print(repr(ex))
        raise
コード例 #4
0
ファイル: rob_helpers_windows.py プロジェクト: afcarl/local
def get_env_var(var):
    try:
        return registry.get_key_value(regkey('LOCAL_ENVVAR'), var)
    except WindowsError as ex:
        print(repr(ex))
        raise