AutoHotkey如何实现检测网络状态并运行软件?

想检测是否有网,若没网则运行某软件,且定时循环检测。
现在已经用Bat实现了,但每次运行软件时都会突然弹出软件窗口,使用过程中很是打扰,但又没找到能最小化运行或隐藏运行的方法,听说AutoHotkey可以实现,特来询问,谢谢:pray:

之前有人问过.

略显麻烦. 下午有时间我研究下其他办法.

下午写了一个程序.

image

系统托盘和窗体都支持状态显示:

分别为红黄蓝绿四色,

绿色-正常
红色-断网-运行程序
黄色-访问异常-运行程序
蓝色-网络不佳

1 Like

上次就是我:rofl:

咋又是你 :joy:
Bat里运行客户端也可以用NirCmd来隐藏窗口呀,不过到时候要关就找不到窗口了

才发现一句话就能搞定

aa :=InternetCheckConnection("http://www.baidu.com")
msgbox, %aa%
;测试网页是否正常
InternetCheckConnection(Url="",FIFC=1) {
Return DllCall("Wininet.dll\InternetCheckConnectionW", Str,Url, Int,FIFC, Int,0)
}
3 Likes

写了一个小程序. 可以试试.

Nircmd确实是可以隐藏cmd窗口,但是断网后bat会打开拨号软件,这个软件隐藏不掉 :rofl:

我是说试试把这个bat里运行拨号软件那一行改成用NirCmd来运行拨号软件

nircmd很多杀软报毒


修改成这样后还是会弹出来 :face_with_peeking_eye:

看你的 bat 里 start NetKeeper.exe,又在下面 taskkill NK.exe,感觉是不是 NetKeeper.exe 只是个启动器,它会启动 NK.exe 然后自己退出?那 NK.exe 是隐藏不了

ahk脚本有自己的隐藏运行cmd的方式,不需要nircmd

NetKeeper.exe是软件目录的文件名,NK.exe是这个软件运行时的进程名。
在任务管理器右键NK.exe进程定位到的是NetKeeper.exe

AHK有办法隐藏运行软件窗口的方式吗?