【转】VBS脚本 实现"无线网络连接"与"本地连接"的网卡禁用启用完美切换(优化版)...

本文介绍使用VBS脚本实现无线网络连接与本地连接的自动切换方法。通过两个独立脚本,可轻松实现无线网络与有线网络间的快速切换,适用于需要频繁更换网络连接方式的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原来的文章被删了,不得不自己转载到blog里~
==============================
VBS脚本 实现"无线网络连接"与"本地连接"的网卡禁用启用完美切换(优化版)

在前一篇日志中,我写了《bat批处理+VBS 实现"无线网络连接"与"本地连接"的网卡禁用启用完美切换 》
在那,我用到了bat和vbs结合。
今天我会将bat的代码直接移植至vbs,直接运行vbs即可。

 

本来是可以只用一个vbs的,但是只用一个vbs的话,每次都要用户选择是启用本地连接还是无线连接,感觉有点麻烦。
故将启用本地连接和启用无线连接分别放在不同vbs脚本中,用胡根据需要运行其中一个脚本即可。

******** 以下是"启用 Wireless.vbs"的代码(我只是分割线 不包括我)********
'-----------------启动无线网络相关服务-----------------
Set vbs=CreateObject("Wscript.Shell")
'***************Wireless Zero Configuration
vbs.Run "sc config WZCSVC start= demand"
vbs.Run "sc start WZCSVC"

'***************Atheros 配置服务
vbs.Run "sc config ACS start= demand"
vbs.Run "sc start ACS"

wscript.sleep 1000


sEnableConnectionName = "无线网络连接" 
sDisableConnectionName = "本地连接"

Const ssfCONTROLS = 3
sEnableVerb = "启用(&A)"
sDisableVerb = "停用(&B)"

set shellApp = createobject("shell.application")
set oControlPanel = shellApp.Namespace(ssfCONTROLS)

set oNetConnections = nothing
for each folderitem in oControlPanel.items
  If folderitem.name  = "网络连接" Then
    Set oNetConnections = folderitem.getfolder: exit for
   end if
next

if oNetConnections is nothing then
  msgbox "未找到网络和拨号连接文件夹"
  wscript.quit
end if

'-----------------停用连接-----------------
set oLanConnection = nothing
for each folderitem in oNetConnections.items
  if lcase(folderitem.name)  = lcase(sDisableConnectionName) then
    set oLanConnection = folderitem: exit for
  end if
next

if oLanConnection is nothing then
  msgbox "未找到 '" & sDisableConnectionName & "' item"
Else
  Set oEnableVerb = nothing
  set oDisableVerb = nothing
  For each verb in oLanConnection.verbs
    if verb.name = sDisableVerb then
      set oDisableVerb = verb
      Exit For
    end if
  next
  
  If not (oDisableVerb is nothing) then
    oDisableVerb.DoIt
  end if
end If

'-----------------启用连接-----------------
set oLanConnection = nothing
for each folderitem in oNetConnections.items
  if lcase(folderitem.name)  = lcase(sEnableConnectionName) then
    set oLanConnection = folderitem: exit for
  end if
next

if oLanConnection is nothing then
  msgbox "未找到 '" & sEnableConnectionName & "' item"
Else
  Set oEnableVerb = nothing
  set oDisableVerb = nothing
  For each verb in oLanConnection.verbs
    If verb.name = sEnableVerb then
      set oEnableVerb = verb
      Exit For
    End if
  next
  
  If not (oEnableVerb is nothing) then
    oEnableVerb.DoIt
  end if
end If
wscript.sleep 1000

 

 

 

******** 以下是"启用 本地连接.vbs"的代码(我只是分割线 不包括我)********
sEnableConnectionName = "本地连接"
sDisableConnectionName = "无线网络连接"

Const ssfCONTROLS = 3
sEnableVerb = "启用(&A)"
sDisableVerb = "停用(&B)"

set shellApp = createobject("shell.application")
set oControlPanel = shellApp.Namespace(ssfCONTROLS)

set oNetConnections = nothing
for each folderitem in oControlPanel.items
  If folderitem.name  = "网络连接" Then
    Set oNetConnections = folderitem.getfolder: exit for
   end if
next

if oNetConnections is nothing then
  msgbox "未找到网络和拨号连接文件夹"
  wscript.quit
end if

'-----------------停用连接-----------------
set oLanConnection = nothing
for each folderitem in oNetConnections.items
  if lcase(folderitem.name)  = lcase(sDisableConnectionName) then
    set oLanConnection = folderitem: exit for
  end if
next

if oLanConnection is nothing then
  msgbox "未找到 '" & sDisableConnectionName & "' item"
Else
  Set oEnableVerb = nothing
  set oDisableVerb = nothing
  For each verb in oLanConnection.verbs
    if verb.name = sDisableVerb then
      set oDisableVerb = verb
      Exit For
    end if
  next 
  
  If not (oDisableVerb is nothing) then
    oDisableVerb.DoIt
  end if
end If

'-----------------启用连接-----------------
set oLanConnection = nothing
for each folderitem in oNetConnections.items
  if lcase(folderitem.name)  = lcase(sEnableConnectionName) then
    set oLanConnection = folderitem: exit for
  end if
next

if oLanConnection is nothing then
  msgbox "未找到 '" & sEnableConnectionName & "' item"
Else
  Set oEnableVerb = nothing
  set oDisableVerb = nothing
  For each verb in oLanConnection.verbs
    If verb.name = sEnableVerb then
      set oEnableVerb = verb
      Exit For
    End if
  next
  
  If not (oEnableVerb is nothing) then
    oEnableVerb.DoIt
  end if
end If
wscript.sleep 800


'-----------------停止无线网络相关服务-----------------
Set vbs=CreateObject("Wscript.Shell")
'***************Wireless Zero Configuration
vbs.Run "sc stop WZCSVC"
vbs.Run "sc config WZCSVC start= disabled"

'***************Atheros 配置服务
vbs.Run "sc stop ACS"
vbs.Run "sc config ACS start= disabled"

转载于:https://www.cnblogs.com/justinprc/archive/2010/11/16/1878822.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值