Board logo

标题: 如何用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
原来如此~