import winreg class Registry: def __init__(self): self.regInit() self.ArchivePath, self.CDRomPath = self.regRead() # Initialize registry with values if there are none @staticmethod def regInit(): reg = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER) # Key try: key = winreg.OpenKeyEx(reg, r"SOFTWARE\Dicom Extractor 2023", 0, winreg.KEY_ALL_ACCESS) except FileNotFoundError: winreg.CreateKey(reg, r"SOFTWARE\Dicom Extractor 2023") key = winreg.OpenKeyEx(reg, r"SOFTWARE\Dicom Extractor 2023", 0, winreg.KEY_ALL_ACCESS) # Value ArchivePath try: _ = winreg.QueryValueEx(key, "ArchivePath") except FileNotFoundError: winreg.SetValueEx(key, "ArchivePath", 0, winreg.REG_SZ, "Init") # Value CDRomPath try: _ = winreg.QueryValueEx(key, "CDRomPath") except FileNotFoundError: winreg.SetValueEx(key, "CDRomPath", 0, winreg.REG_SZ, "C") # Read values @staticmethod def regRead(): reg = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER) key = winreg.OpenKeyEx(reg, r"SOFTWARE\Dicom Extractor 2023", 0, winreg.KEY_ALL_ACCESS) archivePath = winreg.QueryValueEx(key, "ArchivePath") cdromPath = winreg.QueryValueEx(key, "CDRomPath") return archivePath[0], cdromPath[0] # Write values @staticmethod def regWrite(ArchivePath, CDRomPath): reg = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER) key = winreg.OpenKeyEx(reg, r"SOFTWARE\Dicom Extractor 2023", 0, winreg.KEY_ALL_ACCESS) winreg.SetValueEx(key, "ArchivePath", 0, winreg.REG_SZ, ArchivePath) winreg.SetValueEx(key, "CDRomPath", 0, winreg.REG_SZ, CDRomPath)