问题追溯
开发需求中, 要求使用 TK 打包小程序配置代理服务, 此时我的设想架构如下:
1、 TK 小程序请求/修改对应 PAC 文件
2、 后端服务返回/修改对应 PAC 文件并保存
3、 TK 小程序将请求 API 修改至电脑主机配置项中
了解相关 PAC 文件, 请点击这里。
此时你需要构建以下代码:
- 后端 PAC 文件管理/返回服务器
- TK 小程序
- PAC 黑白名单修改/展示功能
- 修改本地电脑主机逻辑代码
- Proxy 代理服务
当你可以使用 TK 撰写并保存 PAC 文件的时候就成功了一大部分, 而这篇博文主要是实现自动化的问题:
- 自动识别并保存修改的最新内容
- 自动关闭代理服务
- 自动修改 windows 电脑 PAC 配置
windows shell 纪要
将这个命令行数据放在纪要信息栏中:
- 修改 PAC 地址在 windows 本机配置中(将
http://medusasorcerer.com
替换成你的 PAC 文件地址):
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL /t REG_DWORF /d "http://medusasorcerer.com" /f
- 清除(在电脑中表现为关闭) PAC 代理配置
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL /f
代码逻辑摘要
- TK 程序需要重写继承基类
Tkinter
, 需要在调用关闭程序的方法destroy()
中关闭 PAC 配置 - 在使用线程进行 Hash 判断不对等时, 需要修改 PAC 代理内容, 此时先调度关闭电脑本机的服务配置, 再重新输入代理地址, 才能有效
- 在使用 TK 小程序的时候优先将获取的 PAC 地址填写进主机代理配置中
后记
在 PAC 的注册表修改中对应 windows 界面是: