标题: 如何用bat后台运行explorer
[打印本页]
作者: kidzgy
时间: 2008-1-17 19:21
标题: 如何用bat后台运行explorer
taskkill /im explorer.exe /f >nul && start explorer.exe > nul 中的
start explorer.exe
直接用上行的,运行完exp之后,本来在焦点处在批处理当中的,焦点移走了。
意思是,本来标题栏是活动的,变成非活动窗口了。
要怎么样可以后台运行exp,这样就不影响对批处理的按键了,否则要鼠标按一下
作者: BatMan
时间: 2008-1-17 21:08
兄台,我越来越想知道你打算干什么了,呵呵...
我这里给的方案不是后台跑explorer,只是在失去焦点后给你弄回来而已……
如果你能确保当时系统只有一个命令行窗口而且标题没被人改过,可以:
taskkill /im explorer.exe /f >nul && start explorer.exe > nul && CALL %COMSPEC% /C START mshta vbscript:CreateObject("WScript.Shell").AppActivate("%COMSPEC%")(window.close)
PAUSE
如果不能确保,那么:
TITLE BatIsFun
taskkill /im explorer.exe /f >nul && start explorer.exe > nul && CALL %COMSPEC% /C START mshta vbscript:CreateObject("WScript.Shell").AppActivate("BatIsFun")(window.close)
PAUSE
Pause只是为了停下来让你看看效果。Title可以自己换成喜欢的,注意脚本中填相同的文字,而且应尽量避免与可能存在的窗口标题重复。
Last edited by BatMan on 2008-1-17 at 09:15 PM ]
作者: plp626
时间: 2008-1-17 21:13
又是mshta,看来得花点功夫了
作者: plp626
时间: 2008-1-17 21:17
根据帖子标题回答如下:
echo createobject("wscript.shell").run "IEXPLORE.EXE www.baidu.com",0 >hide.vbs
hide.vbs&&del hide.vbs
我还没看懂楼主的意思.
Last edited by plp626 on 2008-1-17 at 09:41 PM ]
作者: kidzgy
时间: 2008-1-18 11:07
2楼的真是善解人意,可是两个我都复制进去试了一下,都还是非活动,不能变成活动的。
楼上的想知道什么是活动和非活动,你在桌面上点右键属性外观的图那里,就知道了。
作者: BatMan
时间: 2008-1-21 00:29
:(
在公司的机器是可以的...家里的的确不行...
原因大致是 CALL START explorer.exe实际上在创建进程后立即就返回了,此时立即去做取回焦点的动作的话其实是取到了,但在较快的机器上,explorer.exe启动时夺取焦点的动作发生在我们取回焦点的动作之后,所以焦点最终不在我们的命令行窗口上。
看来还是家里的机器比较强大,呵呵...
原因知道了就可以想各种解决方法了,比如随便搞些无害指令来顶一下时间……
TITLE BatIsFun
taskkill /im explorer.exe /f >nul && call start explorer.exe > nul && ping -n 2 127.0.0.1 >nul && CALL %COMSPEC% /C START mshta vbscript:CreateObject("WScript.Shell").AppActivate("BatIsFun")(window.close)
最根本的方法还是想办法捕捉explorer.exe启动停当的时刻,这个我就暂时没什么主意了……:)
作者: p1509101
时间: 2008-1-21 03:24
呵呵 看看大家的思路真觉得是该好好学学了
作者: kidzgy
时间: 2008-1-22 08:55
TO 7
原来如此~