import winreg
from datetime import datetime

def get_current_date():
    """
    获取当前日期并格式化为月/日/年的格式,无前导零。
    返回格式:月/日/年
    """
    current_date = datetime.now()
    month = current_date.month  # 月份,无前导零
    day = current_date.day      # 日期,无前导零
    year = current_date.year    # 年份,四位数
    return f"{month}/{day}/{year}"

def modify_registry(key_path, value_name, value_data, value_type):
    """
    修改注册表键值
    :param key_path: 注册表键的路径,例如 r"SOFTWARE\MyApp"
    :param value_name: 要修改的值的名称
    :param value_data: 要设置的值
    :param value_type: 值的类型,例如 winreg.REG_SZ (字符串), winreg.REG_DWORD (整数) 等
    """
    try:
        # 打开注册表键(如果不存在则会报错)
        with winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER) as registry:
            with winreg.OpenKey(registry, key_path, 0, winreg.KEY_SET_VALUE) as key:
                # 修改键值
                winreg.SetValueEx(key, value_name, 0, value_type, value_data)
                return
                print(f"成功修改注册表键值:{key_path}\\{value_name}")
    except PermissionError:
        return
        print("权限不足,无法修改注册表。")
    except FileNotFoundError:
        return
        print("指定的注册表键或路径不存在。")
    except Exception as e:
        return
        print(f"发生错误:{e}")

# 示例:修改注册表
modify_registry("SOFTWARE\\Typora", "IDate", get_current_date(), winreg.REG_SZ)