用vbs实现本地连接禁用/启用脚本代码 |
转载至 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 |