首页 > 编程 > VBScript > 正文

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

2020-06-26 18:05:50
字体:
来源:转载
供稿:网友
代码如下:

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  

'adjust the sleep duration below as needed...  
'  
'if you let the oLanConnection go out of scope  
'and be destroyed too soon, the action of the verb  
'may not take...  
'  
wscript.sleep 400 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表