2,722
社区成员
发帖
与我相关
我的任务
分享
#define ITEM_CP '网络连接'
#define NAME_CONN '本地连接'
m.loShell = CreateObject('Shell.Application')
m.loControlPanel = m.loShell.NameSpace(3)
m.loNetConn = Null
For Each m.loCPItem In m.loControlPanel.Items
If m.loCPItem.name == ITEM_CP
m.loNetConn = m.loCPItem.GetFolder
Exit
EndIf
EndFor
If IsNull(m.loNetConn)
MessageBox('没有找到[' + ITEM_CP + ']项目!', 16, '错误')
Return
EndIf
m.loConn = Null
For Each m.loNCItem In m.loNetConn.Items
If m.loNCItem.name == NAME_CONN
m.loConn = m.loNCItem
Exit
EndIf
EndFor
If IsNull(m.loConn)
MessageBox(ITEM_CP + '中不存在名为[' + NAME_CONN + ']的连接!', 16, '错误')
Return
EndIf
m.loVerb = Null
For Each m.loVbItem In m.loConn.Verbs
If InList(Leftc(m.loVbItem.name, 2), '启用', '停用')
m.loVerb = m.loVbItem
Exit
EndIf
EndFor
If !IsNull(m.loVerb) and ;
6 == MessageBox('是否要' + Leftc(m.loVerb.name, 2) + NAME_CONN + '?', 4+32, '')
m.loVerb.DoIt()
EndIf
'将以下保存为VBS文件(先建一个文本文件,然后再把扩展名改为vbs)。
'如保存为 C:\启&禁用网卡.vbs。
'以下代码执行一次 禁用,再执行一次就 启用。
Const ssfCONTROLS = 3
sConnectionName = "本地连接" '如果你的 本地连接 不是这个名称,请修改此处
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(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
wscript.sleep 1000
wscript.echo"操作完成." '此行代码可略