예제 #1
0
파일: test_winreg.py 프로젝트: Qointum/pypy
 def test_long_key(self):
     from winreg import (HKEY_CURRENT_USER, KEY_ALL_ACCESS, CreateKey,
                         SetValue, EnumKey, REG_SZ, QueryInfoKey, OpenKey,
                         DeleteKey)
     name = 'x' * 256
     try:
         with CreateKey(HKEY_CURRENT_USER, self.test_key_name) as key:
             SetValue(key, name, REG_SZ, 'x')
             num_subkeys, num_values, t = QueryInfoKey(key)
             EnumKey(key, 0)
     finally:
         with OpenKey(HKEY_CURRENT_USER, self.test_key_name, 0,
                      KEY_ALL_ACCESS) as key:
             DeleteKey(key, name)
         DeleteKey(HKEY_CURRENT_USER, self.test_key_name)
예제 #2
0
 def delete_key(
     self,
     name: str,
     key_wow64_32key: bool = False,
 ) -> None:
     parental, key_name = name.rsplit(sep="\\", maxsplit=1)
     handle = self._get_handler(parental, KEY_WRITE, key_wow64_32key)
     DeleteKey(handle, key_name)
예제 #3
0
파일: test_winreg.py 프로젝트: Qointum/pypy
    def test_delete(self):
        from winreg import OpenKey, KEY_ALL_ACCESS, DeleteValue, DeleteKey
        key = OpenKey(self.root_key, self.test_key_name, 0, KEY_ALL_ACCESS)
        sub_key = OpenKey(key, "sub_key", 0, KEY_ALL_ACCESS)

        for name, value, type in self.test_data:
            DeleteValue(sub_key, name)

        DeleteKey(key, "sub_key")
예제 #4
0
    def test_delete(self):
        # must be run after test_SetValueEx
        from winreg import OpenKey, KEY_ALL_ACCESS, DeleteValue, DeleteKey
        key = OpenKey(self.root_key, self.test_key_name, 0, KEY_ALL_ACCESS)
        sub_key = OpenKey(key, "sub_key", 0, KEY_ALL_ACCESS)

        for name, value, type in self.test_data:
            DeleteValue(sub_key, name)
        # cannot wrap a memoryview in setup_class for test_data
        DeleteValue(sub_key, 'test_name')

        DeleteKey(key, "sub_key")
예제 #5
0
파일: test_winreg.py 프로젝트: Qointum/pypy
 def test_named_arguments(self):
     from winreg import KEY_ALL_ACCESS, CreateKeyEx, DeleteKey, OpenKeyEx
     with CreateKeyEx(key=self.root_key,
                      sub_key=self.test_key_name,
                      reserved=0,
                      access=KEY_ALL_ACCESS) as ckey:
         assert ckey.handle != 0
     with OpenKeyEx(key=self.root_key,
                    sub_key=self.test_key_name,
                    reserved=0,
                    access=KEY_ALL_ACCESS) as okey:
         assert okey.handle != 0
     DeleteKey(self.root_key, self.test_key_name)
예제 #6
0
def delete_registry_tree(root, subkey):
    try:
        hkey = OpenKey(root, subkey, access=KEY_ALL_ACCESS)
    except OSError:
        return
    while True:
        try:
            subsubkey = EnumKey(hkey, 0)
        except OSError:
            break
        delete_registry_tree(hkey, subsubkey)
    CloseKey(hkey)
    DeleteKey(root, subkey)
예제 #7
0
    def _delete_sub_key(root_key: int, current_key: str,
                        arch: int) -> NoReturn:
        open_key = OpenKey(root_key, current_key, 0, KEY_ALL_ACCESS | arch)
        info_key = QueryInfoKey(open_key)
        for _ in range(0, info_key[0]):
            # NOTE:: This code is to delete the key and all sub_keys.
            # If you just want to walk through them, then
            # you should pass x to EnumKey. sub_key = EnumKey(open_key, x)
            # Deleting the sub_key will change the sub_key count used by EnumKey.
            # We must always pass 0 to EnumKey so we
            # always get back the new first sub_key.
            sub_key = EnumKey(open_key, 0)
            try:
                DeleteKey(open_key, sub_key)
            except OSError:
                _delete_sub_key(root_key, "\\".join([current_key, sub_key]),
                                arch)
                # No extra delete here since each call
                # to delete_sub_key will try to delete itself when its empty.

        DeleteKey(open_key, "")
        open_key.Close()
        return
예제 #8
0
def delPersistance(name):
    k = 'Software\Microsoft\Windows\CurrentVersion\Run'
    # open the key in register
    key = OpenKey(HKEY_CURRENT_USER, k, 0, KEY_ALL_ACCESS)
    # open the subkey
    subKey = OpenKey(key, name, 0, KEY_ALL_ACCESS)
    # remove the keys in the register
    DeleteKey(key, subKey)
    # print(EnumKey(key, 0))
    # close key and sub key
    key.Close()
    subKey.Close()

    print("The %s in /HKCU/%s is removed of the Register." % (name, k))
예제 #9
0
def Registrar(Action='get', RegPath='', RegName='', RegValue=''):
    try:
        ClassDict = {'HKEY_CURRENT_USER': HKEY_CURRENT_USER}
        mainkey = RegPath.split('\\')[0]
        RegRelativePath = RegPath.replace(mainkey + '\\', '')
        with OpenKey(ClassDict[mainkey], RegRelativePath, 0,
                     KEY_ALL_ACCESS) as key:
            if Action == 'get':
                value = QueryValueEx(key, RegName)[0]
                return (value)
            elif Action == 'set':
                SetValueEx(key, RegName, 0, REG_SZ, RegValue)
                if QueryValueEx(key, RegName)[0]:
                    return (True)
                else:
                    return (False)
            elif Action == 'setkey':
                CreateKey(ClassDict[mainkey], join(RegRelativePath, RegName))
            elif Action == 'rmvalue':
                DeleteValue(key, RegName)
            elif Action == 'rmkey':
                DeleteKey(ClassDict[mainkey], join(RegRelativePath, RegName))
    except FileNotFoundError as regerr:
        pass