Windows操作系统,开着DS应用重启电脑后无法上网的问题说明
greper opened this issue · 16 comments
应用开启后会自动修改系统代理设置,正常退出会自动关闭系统代理
当应用意外关闭时,可能会因为没有将系统代理恢复,从而导致完全无法上网。
对于此问题有如下几种解决方案可供选择:
1、重新打开应用即可(右键应用托盘图标可完全退出,将会正常关闭系统代理设置)
2、如果应用被卸载了,此时需要手动恢复系统代理设置
3、你也可以设置ds为开机自启
目前由于Electron无法监听windows的关机事件,所以暂时没有什么好办法能够解决此问题,我会持续跟踪electron的相关更新。
环境:Win10 21H1
方法1 开关机脚本
在系统开关机脚本目录下需要用户权限,简单一点就是在当前用户目录下新建bat脚本。如 %USERPROFILE%
系统默认开关机脚本目录
C:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown
C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup
在用户目录(%USERPROFILE%)新建文件 colse_proxy.bat
"C:\Program Files\DevSidecar\dev-sidecar\resources\extra\sysproxy.exe" set 1
打开组策略 gpedit.msc->计算机管理->Windows设置->脚本(启动/关机)
添加脚本,名称填写批处理的全路径.
脚本bat内容(直接关闭代理设置)
"C:\Program Files\DevSidecar\dev-sidecar\resources\extra\sysproxy.exe" set 1
方法2 任务计划
任务计划程序->创建基本任务->触发器->计算机启动时(或者是登陆时),最后查看属性对话框;
可以修改延迟多长时间启动,以及以最高权限运行脚本。
脚本bat内容(检测程序是否运行,没有运行就关闭代理)
@echo off
set logfile="C:\\batlog.txt"
echo %date:~0,10%_%time:~0,2%%time:~3,2%%time:~6,2% >> %logfile%
tasklist | find "dev-sidecar" /i
if "%errorlevel%" == "1" (
echo "close sysproxy" >> %logfile%
"C:\Program Files\DevSidecar\dev-sidecar\resources\extra\sysproxy.exe" set 1
)else echo "do nothing" >> %logfile%
echo.>> %logfile%
发现开关机脚本不怎么好用,选择自己适合的方法吧
环境:Win10 21H1
方法1 开关机脚本
在系统开关机脚本目录下需要用户权限,简单一点就是在当前用户目录下新建bat脚本。如
%USERPROFILE%
系统默认开关机脚本目录C:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup
在用户目录(%USERPROFILE%)新建文件 colse_proxy.bat
"C:\Program Files\DevSidecar\dev-sidecar\resources\extra\sysproxy.exe" set 1
打开组策略 gpedit.msc->计算机管理->Windows设置->脚本(启动/关机)
添加脚本,名称填写批处理的全路径.
脚本内容(直接关闭代理设置)"C:\Program Files\DevSidecar\dev-sidecar\resources\extra\sysproxy.exe" set 1
方法2 任务计划
任务计划程序->创建基本任务->触发器->计算机启动时(或者是登陆时),最后查看属性对话框;
可以修改延迟多长时间启动,以及以最高权限运行脚本。脚本内容(检测程序是否运行,没有运行就关闭代理)
@echo off tasklist | find "dev-sidecar" /i if "%errorlevel%"=="1" ( echo "close sysproxy" "C:\Program Files\DevSidecar\dev-sidecar\resources\extra\sysproxy.exe" set 1 )else( echo "do nothing" )
发现开关机脚本不怎么好用,选择自己适合的方法吧
反复重启测试还好,过了几个小时开机发现还是没关闭代理,不知道为什么,下次把执行过程输出到日志看一下
这种直接开机以后把软件打开,再关闭退出,网络就好了吧
我都是用360网络恢复。。
亲测 360网络恢复好使,但是每次360开机就要自启还是很烦
win11可以用吗?
根据 https://github.com/paymoapp/electron-shutdown-handler 提供的方法应该可以解决这个问题, 或许我可以开一个 PR
麻烦你开一个PR吧。
PR 遇到了一些问题,我正在尝试解决 😅
cc @wangliang181230
日志里正确打印了,但是代理没有正确的关闭,你有什么头绪?
ds是借助第三方的 proxy.exe
来设置系统代理的。可能就是这个导致的。关机过程中无法启动这个程序。
想办法用nodejs直接设置Windows系统代理。
我发现在管理员模式下启动应用能正常关闭代理
如果没有意外的话今天应该能完成这个PR