中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 19:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 麻烦大家帮忙解释一下这个VBS
楼 主 麻烦大家帮忙解释一下这个VBS 发表于 2008-12-24 12:32 ·  中国 四川 广安 电信
初级用户
积分 84
发帖 32
注册 2007-09-17 12:42
UID 97604
性别 男
来自 湖北
状态 离线
' Clears WFP message

const win="Windows File Protection"
set arg=wscript.arguments
if arg.count then
flg=arg.item(0)
else wscript.echo "Bad parameters."
wscript.quit
end if
set w=wscript.createobject("wscript.shell")
set f=wscript.createobject("scripting.filesystemobject")
x=999
while x > 0
w.appactivate(win)
if w.appactivate(win) then
w.sendkeys "{ESC}"
w.sendkeys "%y"
end if
if f.fileexists(flg) then
x=45
f.deletefile(flg)
end if
wscript.sleep 333
x=x-1
wend
麻烦大家帮忙解释一下这段VBS写的是什么用的`
2 发表于 2008-12-24 17:16 ·  中国 广东 深圳 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
UID 87022
性别 男
状态 离线
好像是系统文件被替换后,会出现一个标题为“Windows File Protection”的对话框,提示你系统文件被替换,是否要恢复?


程序运行后的333秒内,如果这个提示出现,就取消这个对话框,

如果产生了个什么文件还是对话框,这个我不懂,就删除这个文件或关掉这个对话框。接下来的15秒内只要这个提示窗口出现,这个vbs就每秒运行3次按ESC取消对话框并确认取消。15秒过后程序结束。

如果不产生这个文件或对话框什么的,过333秒后程序结束。

[ Last edited by exzzz on 2008-12-24 at 17:21 ]
3 发表于 2008-12-24 18:22 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
4 发表于 2008-12-24 19:57 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
333是毫秒...


就是循环检测,有没有那个文件保护的提示框,有就发送按键,就是点取消.
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
5 发表于 2008-12-24 20:15 ·  中国 广东 深圳 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
UID 87022
性别 男
状态 离线
X=999
.....

wscript.sleep(333) 休眠0.3秒X-1,就是每秒X减3,999/3=333秒
6 发表于 2008-12-25 19:14 ·  中国 广东 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
UID 74552
性别 男
状态 离线
const win="Windows File Protection" '定义常数win 是需要操作窗口的标题
set arg=wscript.arguments '引用arguments对像给arg
if arg.count then '判断参数是否存在
flg=arg.item(0) '存在将第一个参数赋值给flg
else wscript.echo "Bad parameters." '不存在出现提示消息参数错误
wscript.quit '并且退出脚本
end if '判断结束
set w=wscript.createobject("wscript.shell") '创建wsh对象
set f=wscript.createobject("scripting.filesystemobject") '创建fso对象
x=999 '赋值x为999
while x > 0 '定义x大于零时一直循环
w.appactivate(win) '激活窗体也就是前边定义的
if w.appactivate(win) then '多此一举为了判断又激活了一次
w.sendkeys "{ESC}" '若窗体存在则先选择取消
w.sendkeys "%y" '然后确定
end if '判断结束
if f.fileexists(flg) then ' 判断做为参数传递的文件是否存在
x=45 '存在则设x=45
f.deletefile(flg) '并且删除这个文件
end if
wscript.sleep 333 '等待三分之一秒
x=x-1 '将x减去1,
wend
49206C6F766520796F752067757973 54656C3A3133383238343036373837
论坛跳转: