如何用程序控制禁用和启用本地的网络连接?

我得意思是这样得:你用鼠标右键单击“网上邻居”,点击“属性”,在弹出的对话框中会看到“本地连接”,在“本地连接”上单击右键,可以选择“禁用”,禁用后再在“本地连接”上点击右键,可以再选择“启用”,操作系统内部已经有了这些操作,我想知道的是如何用程序控制这个“禁用”和“启用”过程,就像自己在操作系统中用鼠标操纵的效果一样。多谢!

---------------------------------------------------------------

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

将以为存为VBS文件,执行一次启用,再执行一次就禁用.

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus