中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 帮忙解释这段vbs代码 上一主题 | 下一主题
qq43142691
中级用户





积分 327
发帖 152
注册 2007-5-4
状态 离线
『楼 主』:  帮忙解释这段vbs代码

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
谁帮给个注释.....偶看不懂


─────────────────── 版务记录 ────────────────────
执行人:lxmxn
原标题:帮一下偶....
说明:因标题表述过于模糊,不便于论坛的搜索和管理,请在三日内修改标题。
提示:修改标题请在当前帖的右下脚点 编辑,修改完毕之后按 编辑帖子 即可。
处罚:因属论坛新人,暂时不予处罚;若三日之后尚未修改标题,将扣除20点积分,
   以示惩罚,并由版主强制修改标题。请点击这里阅读论坛发帖规定或者查看
   提问的智慧,以避免在今后的讨论中违规发帖。
─────────────────── 版务记录 ────────────────────


[ Last edited by bjsh on 2007-6-6 at 11:06 AM ]

   此帖被 -20 点积分       点击查看详情   
评分人:【 bjsh 分数: -20  时间:2007-6-6 11:07


2007-6-3 19:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 2 楼』:  

比较简单的一个脚本,主要思路就是模拟在“本地链接”上右键菜单的执行。
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


2007-6-3 19:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq43142691
中级用户





积分 327
发帖 152
注册 2007-5-4
状态 离线
『第 3 楼』:  

哈哈..谢谢大家....

2007-6-3 20:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
beeny
初级用户





积分 136
发帖 49
注册 2007-1-4
状态 离线
『第 4 楼』:  

有些复杂看不懂

2007-6-24 12:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: