首页 > 编程 > VBScript > 正文

用vbs实现本地连接禁用/启用脚本代码

2019-10-26 17:58:30
字体:
来源:转载
供稿:网友
转载至 http://community.csdn.net/Expert/topic/4881/4881882.xml

复制代码 代码如下:

Const ssfCONTROLS = 3 

sConnectionName = "本地连接"  '可改成需要控制的连接名称,如"无线网络连接"等 

sEnableVerb = "启用(&A)" 
sDisableVerb = "禁用(&B)"   'XP系统中应为 "停用(&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(sConnectionName) then 
   set oLanConnection = folderitem: exit for 
 end if 
next 

if oLanConnection is nothing then 
 msgbox "未找到 '" & sConnectionName & "' item" 
 wscript.quit 
end if 

bEnabled = true 
set oEnableVerb = nothing 
set oDisableVerb = nothing 
s = "Verbs: " & vbcrlf 
for each verb in oLanConnection.verbs 
 s = s & vbcrlf & verb.name 
 if verb.name = sEnableVerb then  
   set oEnableVerb = verb   
   bEnabled = false 
 end if 
 if verb.name = sDisableVerb then  
   set oDisableVerb = verb   
 end if 
next 

'debugging displays left just in case... 

'msgbox s ': wscript.quit 
'msgbox "Enabled: " & bEnabled ': wscript.quit 

'not sure why, but invokeverb always seemed to work  
'for enable but not disable.   

'saving a reference to the appropriate verb object  
'and calling the DoIt method always seems to work. 

if bEnabled then 
'  oLanConnection.invokeverb sDisableVerb 
 oDisableVerb.DoIt 
else 
'  oLanConnection.invokeverb sEnableVerb 
 oEnableVerb.DoIt 
end if 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表