关于运行DOS命令的困惑!
本人写有如下代码:Func unclock()
Run("unclock.bat")
WinWaitActive("RegSvr32")
Send("{ENTER}")
WinWaitActive("RegSvr32")
Send("{ENTER}")
WinWaitActive("RegSvr32")
Send("{ENTER}")
Call("qy")
EndFunc ;==>unclock
大意是执行一个BAT文件,将网络连接解锁。执行.bat时会出现一个CMD窗口,等待DLL文件注册成功后弹出的确认窗口自动点击确定。运行正常。
当改为:
Func unclock()
_RunDOS("regsvr32 netcfgx.dll")
问题出现在这
WinWaitActive("RegSvr32")
Send("{ENTER}")
_RunDOS("regsvr32 netshell.dll")
WinWaitActive("RegSvr32")
Send("{ENTER}")
_RunDOS("regsvr32 netman.dll")
WinWaitActive("RegSvr32")
Send("{ENTER}")
Call("qy")
EndFunc ;==>unclock
这样改后的一个效果是不会出现讨厌的CMD窗口了,但是,在执行完第一个DLL注册(一共3个),弹出第一个注册成功的提示窗口后就死在这了,现象表现为没有检测到注册成功的提示窗口自动点击确定,这时候用手动点击确定后,提示窗口会正常消失,但也没有执行第2个DLL的注册动作了。请教高手是我的语法用错了,还是存在什么别的原因呢?
[ 本帖最后由 ahphsautoit 于 2009-3-30 08:19 编辑 ] 我晕 有那么麻烦吗?直接REGSVR32 netcfgx.dll /s
不就好了吗 搞不懂你要做什么! 人家只是不知道有/s这个参数嘛 呵呵,菜鸟就是这样慢慢长大的嘛!多谢了! Func unclock()
_RunDOS("regsvr32/s netcfgx.dll")
_RunDOS("regsvr32/s netshell.dll")
_RunDOS("regsvr32/s netman.dll")
Call("qy")
EndFunc ;==>unclock
Func clock()
_RunDOS("regsvr32/s/u netcfgx.dll")
_RunDOS("regsvr32/s/u netshell.dll")
_RunDOS("regsvr32/s/u netman.dll")
Call("jy")
EndFunc ;==>clock
在_RunDOS("regsvr32/s/u netcfgx.dll")中,如果是/s/u,能静默安装,但是没有成功反注册,如果是/u/s,能成功反注册,但是不能静默安装。不能同时带两个以上的参数运行吗?
[ 本帖最后由 ahphsautoit 于 2009-3-25 13:24 编辑 ] 为什么不可以用空格分隔下参数的? 用空格分?哦,多谢指教!
页:
[1]