用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 

相关推荐