QTP调用网络受限和恢复的批处理文件

上一篇 / 下一篇  2010-11-25 14:00:22 / 个人分类:QTP学习

录制网络断开时,我录制的方法是直接去录制从网上邻居中断开网络,无奈,运行脚本时,不识别。去求助时,被告知调用批处理文件是最简单的方法。
由于不会写批处理文件,于是还是继续寻求VBS自身解决之道,但是只找到可以断开的,没找到可以连接的(断开网络后想继续运行其他脚本,当然得先连接上),而且VBS代码很长很长,如下:
 
Const ssfCONTROLS = 3
sConnectionName = "本地连接 2" '可改成需要控制的连接名称,如"无线网络连接"等
sEnableVerb = "启用(&A)"
sDisableVerb = "停用(&B)" '非xp 系统可能 是禁用
set shellApp = createobject("shell.application")
set ControlPanel = shellApp.Namespace(ssfCONTROLS)
set NetConnections = nothing
for each folderitem in oControlPanel.items
if folderitem.name = "网络连接" then
set NetConnections = folderitem.getfolder: exit for
end if
next
if oNetConnections is nothing then
msgbox "未找到网络连接文件夹"
wscript.quit
end if
set LanConnection = nothing
for each folderitem in oNetConnections.items
if lcase(folderitem.name) = lcase(sConnectionName) then
set LanConnection = folderitem: exit for
end if
next
if oLanConnection is nothing then
msgbox "未找到 '" & sConnectionName & "' item"
wscript.quit
end if
bEnabled = true
set EnableVerb = nothing
set DisableVerb = nothing
s = "Verbs: " & vbcrlf
for each verb in oLanConnection.verbs
s = s & vbcrlf & verb.name
if verb.name = sEnableVerb then
set EnableVerb = verb
bEnabled = false
end if
if verb.name = sDisableVerb then
set DisableVerb = 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,改用批处理,研究一天,没找到合适资料,还是找朋友帮忙(朋友多了路好走~~),写了两个批处理文件,由于本电脑没devcon,所以写使网络受限更简便点,如下:
限制网络:
@echo off
ipconfig /release

开启限制网络:
@echo off
ipconfig /renew
分别保存为.bat文件,为方便使用,把文档路径加入环境变量参数化(File-settings-environment-Variable type(user-defined)),然后使用SystemUtil.Run  Environment ("连接网络批处理文件") 调用,问题解决。

TAG:

 

评分:0

我来说两句

Open Toolbar