import os
import sys
import ctypes
import platform
# 检查操作系统
if platform.system() != "Windows":
print("此脚本仅适用于Windows系统")
input("按回车键退出...")
sys.exit(1)
try:
import winreg
except ImportError:
print("此脚本需要Windows环境")
input("按回车键退出...")
sys.exit(1)
def is_admin():
"""检查是否以管理员权限运行"""
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
def set_proxy(enable, proxy_server=None):
"""设置系统代理"""
try:
# 打开Internet设置注册表键
internet_settings = winreg.OpenKey(
winreg.HKEY_CURRENT_USER,
r"Software\Microsoft\Windows\CurrentVersion\Internet Settings",
0, winreg.KEY_WRITE
)
# 设置代理启用状态
winreg.SetValueEx(internet_settings, "ProxyEnable", 0, winreg.REG_DWORD, 1 if enable else 0)
# 如果启用代理,设置代理服务器地址
if enable and proxy_server:
winreg.SetValueEx(internet_settings, "ProxyServer", 0, winreg.REG_SZ, proxy_server)
winreg.CloseKey(internet_settings)
# 通知系统设置已更改
internet_setting_changed = 0x0000002A # INTERNET_OPTION_SETTINGS_CHANGED
ctypes.windll.Wininet.InternetSetOptionW(0, internet_setting_changed, 0, 0)
return True
except Exception as e:
print(f"设置代理时出错: {e}")
return False
def main():
# 检查管理员权限
if not is_admin():
print("请以管理员权限运行此程序")
input("按回车键退出...")
sys.exit(1)
# 显示选项
print("=" * 40)
print("系统代理设置工具")
print("=" * 40)
print("1. 不使用代理")
print("2. 设置代理为 127.0.0.1:6666")
print("=" * 40)
# 获取用户选择
choice = input("请选择 (1 或 2): ")
if choice == "1":
# 禁用代理
if set_proxy(False):
print("已成功禁用系统代理")
else:
print("禁用代理失败")
elif choice == "2":
# 启用代理并设置为127.0.0.1:6666
if set_proxy(True, "127.0.0.1:6666"):
print("已成功设置系统代理为 127.0.0.1:6666")
else:
print("设置代理失败")
else:
print("无效选择,请输入 1 或 2")
input("按回车键退出...")
if __name__ == "__main__":
main()