dicom-extractor-2023/registry.py

50 lines
1.8 KiB
Python

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)