[已解决]怎样把停用、启动网络连接的VBS代码分成两个?
把启用和停用分成两个VBS
Const ssfCONTROLS = 3
sC '可改成需要控制的连接名称,如"无线网络连接"、"本地连接 2"等
sEnableVerb = "启用(&A)"
sDisableVerb = "停用(&B)"
set wmi = GetObject("winmgmts:")
set colSystem = wmi.ExecQuery("select * from Win32_OperatingSystem")
for each objSystem in colSystem
if Instr(UCase(objSystem.Caption),UCase("Windows XP")) then '如果系统是WinXP
sNetC
sDisableVerb = "停用(&B)"
else '如果系统是Win2000
sNetC
sDisableVerb = "禁用(&B)"
end if
next
set shellApp = createobject("shell.application")
set oControlPanel = shellApp.Namespace(ssfCONTROLS)
set oNetConnections = nothing
for each folderitem in oControlPanel.items
if folderitem.name = sNetConnections then
set oNetConnections = folderitem.getfolder
exit for
end if
next
if oNetConnections is nothing then
WScript.Echo "控制面板中未找到" & sNetConnections & "文件夹"
wscript.quit
end if
set oLanConnection = nothing
for each folderitem in oNetConnections.items
'WScript.Echo folderitem.name
if lcase(folderitem.name) = lcase(sConnectionName) then
set oLanConnection = folderitem
exit for
end if
next
if oLanConnection is nothing then
WScript.Echo sNetConnections & "中未找到'" & sConnectionName & "'项目"
wscript.Quit
end if
bEnabled = true
set oEnableVerb = nothing
set oDisableVerb = nothing
s = "Verbs: " & vbcrlf
for each verb in oLanConnection.verbs
'WScript.Echo verb.name
'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
'if msgbox(sConnectionName & " 当前状态:已启用", 36, "是否停用")=vbYes then
oDisableVerb.DoIt
'then
else
' oLanConnection.invokeverb sEnableVerb
'if msgbox(sConnectionName & " 当前状态:已禁用", 36, "是否启用")=vbYes then
oEnableVerb.DoIt
'then
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 1000
set oNetConnections = nothing
set oLanConnection = nothing
set oEnableVerb = nothing
set oDisableVerb = nothing
[ 本帖最后由 jialin2008 于 2010-3-31 14:50 编辑 ] |