Last active
August 23, 2019 13:12
-
-
Save casperlehmann/649c57e8c60f875de7a1e78ac20697ee to your computer and use it in GitHub Desktop.
Revisions
-
casperlehmann revised this gist
Aug 23, 2019 . No changes.There are no files selected for viewing
-
casperlehmann renamed this gist
Aug 23, 2019 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
casperlehmann created this gist
Aug 23, 2019 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,65 @@ # python # Borrowing heavily from: https://stackoverflow.com/a/35286642 import winreg class RegHandler: def __init__(self, reg_path: str): self.reg_path = reg_path def set_reg(self, name, value): try: winreg.CreateKey(winreg.HKEY_CURRENT_USER, self.reg_path) registry_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, self.reg_path, 0, winreg.KEY_WRITE) winreg.SetValueEx(registry_key, name, 0, winreg.REG_SZ, value) winreg.CloseKey(registry_key) return True except WindowsError: return False def get_reg(self, name): try: registry_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, self.reg_path, 0, winreg.KEY_READ) value, regtype = winreg.QueryValueEx(registry_key, name) winreg.CloseKey(registry_key) return value except WindowsError: return None def del_reg(self, name): try: winreg.CreateKey(winreg.HKEY_CURRENT_USER, self.reg_path) registry_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, self.reg_path, 0, winreg.KEY_WRITE) winreg.DeleteValue(registry_key, name) winreg.CloseKey(registry_key) return True except WindowsError: return False if __name__ == '__main__': # Tests # Setting environment variables pairs = (('testing', 'A'), ('testing', 'B'), ('testing', 'C'), ('testing', 'B')) EnvHandler = RegHandler(reg_path = r'Environment') assert EnvHandler.get_reg('testing') is None for k, v in pairs: EnvHandler.set_reg(k, v) assert EnvHandler.get_reg(k) == v else: EnvHandler.del_reg(k) assert EnvHandler.get_reg(k) is None # Example set MouseSensitivity MouseHandler = RegHandler(reg_path = r'Control Panel\Mouse') mouse_sens = MouseHandler.get_reg('MouseSensitivity') MouseHandler.set_reg('MouseSensitivity', '7') assert MouseHandler.get_reg('MouseSensitivity') == '7' MouseHandler.set_reg('MouseSensitivity', '8') assert MouseHandler.get_reg('MouseSensitivity') == '8' # Reset MouseSensitivity MouseHandler.set_reg('MouseSensitivity', mouse_sens)