예제 #1
0
def test_delregtree():
    regkey = random_regkey()
    set_regkey_full(
        "HKEY_CURRENT_USER\\%s\\del" % regkey, _winreg.REG_SZ, "delete"
    )
    del_regkey(_winreg.HKEY_CURRENT_USER, regkey)
    assert not regkey_exists(_winreg.HKEY_CURRENT_USER, "%s\\del" % regkey)
    assert not regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
예제 #2
0
def test_setreg():
    regkey = random_regkey()
    assert not regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
    assert query_value(_winreg.HKEY_CURRENT_USER, regkey, "foo") is None

    set_regkey(_winreg.HKEY_CURRENT_USER, regkey, "foo", _winreg.REG_SZ, "bar")

    assert regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
    assert query_value(_winreg.HKEY_CURRENT_USER, regkey, "foo") == "bar"
예제 #3
0
def test_setreg():
    regkey = random_regkey()
    assert not regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
    assert query_value(_winreg.HKEY_CURRENT_USER, regkey, "foo") is None

    set_regkey(
        _winreg.HKEY_CURRENT_USER, regkey,
        "foo", _winreg.REG_SZ, "bar"
    )

    assert regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
    assert query_value(_winreg.HKEY_CURRENT_USER, regkey, "foo") == "bar"
예제 #4
0
    def patch_acpi(self):
        # TODO This should be improved, but for now may suffice.
        keywords = {
            "VBOX": "LNVO",
            "vbox": "lnvo",
            "VirtualBox": "LENOVOTP",
            "innotek GmbH": "",
        }

        regkeys = [
            ["SYSTEM\\CurrentControlSet\\Services\\mssmbios\\Data", "AcpiData"],
            ["SYSTEM\\ControlSet001\\Services\\mssmbios\\Data", "AcpiData"],

            ["SYSTEM\\CurrentControlSet\\Services\\mssmbios\\Data", "SMBiosData"],
            ["SYSTEM\\ControlSet001\\Services\\mssmbios\\Data", "SMBiosData"],
        ]

        for regkey, key in regkeys:
            value = query_value(HKEY_LOCAL_MACHINE, regkey, key)
            if value is None:
                continue

            for k, v in keywords.items():
                value = value.replace(k, v)

            set_regkey(HKEY_LOCAL_MACHINE, regkey, key, REG_BINARY, value)

        if regkey_exists(HKEY_LOCAL_MACHINE, "HARDWARE\\ACPI\\DSDT\\VBOX__"):
            rename_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\ACPI\\DSDT\\VBOX__", "LENOVO")
            rename_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\ACPI\\FADT\\VBOX__", "LENOVO")
            rename_regkey(HKEY_LOCAL_MACHINE, "HARDWARE\\ACPI\\RSDT\\VBOX__", "LENOVO")
예제 #5
0
def test_setregfull():
    regkey = random_regkey()
    set_regkey_full("HKEY_CURRENT_USER\\%s\\foo" % regkey, _winreg.REG_SZ,
                    "bar2")

    assert regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
    assert query_value(_winreg.HKEY_CURRENT_USER, regkey, "foo") == "bar2"
예제 #6
0
def test_setregfull():
    regkey = random_regkey()
    set_regkey_full(
        "HKEY_CURRENT_USER\\%s\\foo" % regkey, _winreg.REG_SZ, "bar2"
    )

    assert regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
    assert query_value(_winreg.HKEY_CURRENT_USER, regkey, "foo") == "bar2"
예제 #7
0
def test_dword():
    regkey = random_regkey()
    set_regkey_full(
        "HKEY_CURRENT_USER\\%s\\foo" % regkey, _winreg.REG_DWORD, 1234
    )

    assert regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
    assert query_value(
        _winreg.HKEY_CURRENT_USER, regkey, "foo"
    ) == 1234
예제 #8
0
def test_multisz():
    regkey = random_regkey()
    set_regkey_full(
        "HKEY_CURRENT_USER\\%s\\foo" % regkey, _winreg.REG_MULTI_SZ,
        ["a", "b", "c"]
    )

    assert regkey_exists(_winreg.HKEY_CURRENT_USER, regkey)
    assert query_value(
        _winreg.HKEY_CURRENT_USER, regkey, "foo"
    ) == ["a", "b", "c"]