import ctypes import sys import os from time import sleep import shelve path = os.getcwd() with shelve.open('main.db') as db: bin_name = db['bin_name'] db.close() print(path) def is_admin(): # 检查当前是否有管理员权限 try: return ctypes.windll.shell32.IsUserAnAdmin() except: return False if is_admin(): # 如果已经是管理员,执行主要的逻辑 while True: print("已获得管理员权限") print(f"当前模式(1为cs原版,2为csso):{bin_name}") print("请选择模式") print("1.改为csso 2.改回原版 3.退出") ip = input(int('>>>')) # 逻辑系统bin2为csso文件 bin1为cs原版文件 bin为现在使用的游戏文件 if ip == int(1): if bin_name == int(1): print('错误,你已是原版') sleep(1.5) sys.exit() os.system(f"ren {path}/bin {path}/bin1") os.system(f"ren {path}/bin2 {path}/bin") with shelve.open('main.db') as db: db['bin_name'] = int(1) db.close() print("完成!") sleep(1.85) sys.exit() elif ip == int(2): if bin_name == int(2): print("错误,你已是csso!") sleep(1.5) sys.exit() os.system(f"ren {path}/bin {path}/bin2") os.system(f"ren {path}/bin1 {path}/bin") with shelve.open('main.db') as db: db['bin_name'] = int(2) db.close() print("完成!") sleep(1.55) sys.exit() elif ip == int(3): sys.exit() else: print("输入错误!") else: # 如果没有管理员权限,重新以管理员权限运行脚本 print("请求管理员权限...") # 使用 `ctypes` 模块提升权限,重新运行脚本 ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)