一键开关网络适配器

一键开关网络适配器

经常需要关闭有线适配器连接无线,每次打开设置界面也有些繁琐

主要原理是用CMD命令行,刚好配合ahk菜单一键切换

其实CMD命令可以用ahk实现但我试了几个方法都不行,如果大佬们会写可以评论贴代码

NetAdapterSwitch.ahk

if (!A_IsAdmin)
    Run *RunAs %A_ScriptFullPath%
FileEncoding UTF-8-RAW

Menu Tray,NoStandard
Menu Tray,Add,WLAN
Menu Tray,Add,Ethernet
Menu Tray,Add,Exit
return


WLAN:
    Run bat\WLAN.bat,,Hide
return

Ethernet:
    Run bat\Ethernet.bat,,Hide
return

Exit:
    ExitApp


#NoEnv
#Persistent
#SingleInstance Force

WLAN.bat

set NetName=WLAN
netsh interface show interface "%NetName%" | findstr "Disabled" >nul 2>nul && (set State=enabled) || (set State=disabled)
netsh interface set interface "%NetName%" %State%

Ethernet.bat

set NetName=Ethernet
netsh interface show interface "%NetName%" | findstr "Disabled" >nul 2>nul && (set State=enabled) || (set State=disabled)
netsh interface set interface "%NetName%" %State%

给TA捐赠
共{{data.count}}人
人已捐赠
其他应用

自动保存的置顶文本框

2022-8-26 13:43:43

其他

ahk调用snipaste截图工具命令行

2022-8-27 19:20:49

9 条回复 A文章作者 M管理员
  1. 僵尸牌木乃伊

    看“以太网”的状态,是要这个效果?

    • Ananovo

      是的,不过文中的三句CMD能实现检测是否开启而切换

    • Ananovo

      就是能用一个开关实现开启和关闭?

    • 僵尸牌木乃伊

      获取状态的话。。。需要读一个返回值。。目前来说。。。 文档里有例子可以返回结果,但是那个例子里我不会把CMD窗口隐藏运行?

  2. 僵尸牌木乃伊

    VarSetCapacity(lpdwFlags,1) ret := DllCall(“WININET.dllInternetGetConnectedState”, “Ptr”, &lpdwFlags, “UInt”, 0) MsgBox % ret 【不管啥方式。。只要适配器连接了。就返回1,否则返回0。。如果你只是控制一个有线的适配器的启用/禁用,可以试试】 原因不明。。我这个连接的按钮状态总不变。。看鼠标位置连接状态的提示吧 下面是代码,自己测试 F2:: VarSetCapacity(lpdwFlags,1) ret := DllCall(“WININET.dllInternetGetConnectedState”, “Ptr”, &lpdwFlags, “UInt”, 0) If (ret = 1) Run, %ComSpec% /c netsh interface set interface “WLAN 2” disabled, ,Hide Else Run, %ComSpec% /c netsh interface set interface “WLAN 2” enabled, ,Hide Return

  3. 蜜獾哥

    还不够简洁,如果把cmd整合进ahk脚本就更好,但就佩服这种一本正经的分享劲!加油!

    • Ananovo

      僵尸大佬在评论区分享了,集思广益?

  4. 蜜獾哥
    HoneyBadger给您捐赠了¥2
个人中心
购物车
优惠劵
有新私信 私信列表
搜索