转载至 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
' 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
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