本帖最后由 pcl_test 于 2017-4-17 17:20 编辑
- 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
复制代码
|