河南大学 henu-student 校园网自动登录助手
========================================

版本：2.4（可靠退出与原子写入版）
支持：移动、联通、电信，以及校园资源账号。

安装：
1. 双击“安装校园网自动登录.cmd”。
2. 输入自己的校园网账号和密码。
3. 选择移动、联通或电信，点击“安装并开始守护”。

安装后：
- 进入 Windows 桌面后会询问“今天在学校吗？”。
- 选择“是”后会显示连接状态；需要认证时会打开专用 Edge 窗口，自动填写、选择运营商并点击登录。
- 状态窗口可隐藏到系统托盘。正常上网时约每 10 秒检查一轮，不弹出认证页，也不切换你正在使用的网络。
- 常规联网检测在同一进程的后台线程内运行，不再每轮启动 PowerShell 子进程，减少命令窗口闪现和启动开销。界面不会等待联网请求完成才响应。
- 只有确认断网后的恢复任务才启动独立进程，并禁止创建控制台窗口；需要网页登录时仍会显示专用 Edge 窗口。
- 不控制远控软件、显卡、屏幕或锁屏设置；这项优化不能保证解决其他原因导致的远控黑屏。
- 每轮同时验证百度、腾讯、网易三个国内站点的 HTTPS 内容；任何一个通过即认为有互联网，不会因某一个网址超时就重新登录。不会将认证页的 HTTP 200 当成联网成功。
- 所有验证连续至少 3 轮失败且持续至少 15 秒，才尝试恢复。打开网页前、提交账号前再次检查，已经恢复则取消认证。
- 点击“立即检查并恢复”仍然先检查互联网，不会强制重复登录。旧版命令行 ForceLogin 参数也不再绕过检查。
- 认证尝试有 120 秒起步、最多 300 秒的间隔；间隔期间继续检测网络，避免频繁弹窗。恢复时间取决于 Wi-Fi、网页及运营商响应，不保证 20 秒内恢复。
- 选择“否”后，本次登录期间不会自动连接校园网。
- 安装程序会把 henu-student 设为 Windows 手动连接模式，避免选“否”后系统自行连接。
- 只有检测到 henu-student 在附近时才尝试连接，不会影响在家或其他地点使用 Wi-Fi。
- 密码使用当前 Windows 账户加密保存，不能复制到另一台电脑直接解密。
- 网页自动登录按控件名称识别，不依赖屏幕坐标，不会因为窗口位置或分辨率变化而点错。
- 需要 Windows 自带的 Microsoft Edge；认证成功后专用窗口会自动关闭，失败时会保留页面供检查。
- 正常关机或注销时守护程序会允许 Windows 关闭；只有用户点窗口右上角时才隐藏到托盘。
- 状态和配置文件先写临时文件再原子替换；日志超过 1 MB 后保留一份旧日志。

如果开机时选了“否”，后来又到了学校：
- 双击“启动本次校园网自动连接.cmd”，再选择“是”。

修改账号、密码或运营商：
- 重新运行安装程序并覆盖原配置即可。

卸载：
- 双击“卸载校园网自动登录.cmd”。
- 卸载会关闭守护、登录子进程和认证专用 Edge；失败时显示具体残留项。
- henu-student Wi-Fi 配置会保留并继续使用手动连接模式，卸载程序不会自动删除它。

故障日志：
- %LOCALAPPDATA%\HenuAutoLogin\auto-login.log

注意：
- 首次使用前，Windows 中需已有名为 henu-student 的 Wi-Fi 配置（正常手动连接过一次即可）。
- 如果学校以后更换认证系统，可能需要更新脚本。
- 联网验证不是对所有网站的保证：某个应用或网站单独打不开，而其他外网正常时，不会因此重复认证。
- 使用 Windows 系统代理正常上网时也视为在线。三个检测站点均被防火墙或代理拦截时仍可能误判，可退出守护并反馈日志。
- 学校当前认证入口是 http://172.29.35.36:6060，不支持 HTTPS。密码在本机由 DPAPI 加密保存，但提交给该页面时的网络传输不是加密连接。只应在可信的校园网中使用；如学校提供 HTTPS 入口，应优先更换。
- 认证程序会校验固定来源和页面控件，但这无法消除 HTTP 在开放 Wi-Fi 上被监听或篡改的固有风险。
- 需要认证时，程序会尝试从校园网重定向中读取当前区域的 wlanacname；只接受固定校园认证来源和合法参数。未取得有效值时才回退到 HD-SuShe-ME60。
