中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 07:20
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用bat后台运行explorer 查看 2,000 回复 7
楼 主 如何用bat后台运行explorer 发表于 2008-01-17 19:21 ·  中国 广东 梅州 电信
中级用户
★★
积分 262
发帖 129
注册 2007-07-11 06:50
19年会员
UID 93679
性别 男
状态 离线
taskkill /im explorer.exe /f >nul && start explorer.exe > nul 中的
start explorer.exe
直接用上行的,运行完exp之后,本来在焦点处在批处理当中的,焦点移走了。

意思是,本来标题栏是活动的,变成非活动窗口了。

要怎么样可以后台运行exp,这样就不影响对批处理的按键了,否则要鼠标按一下
2 发表于 2008-01-17 21:08 ·  中国 广东 深圳 电信
初级用户
蝙蝠侠是写批处理的人
积分 54
发帖 24
注册 2008-01-04 20:34
18年会员
UID 107683
性别 男
状态 离线
兄台,我越来越想知道你打算干什么了,呵呵...

我这里给的方案不是后台跑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 ]
3 发表于 2008-01-17 21:13 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
又是mshta,看来得花点功夫了
4 发表于 2008-01-17 21:17 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
根据帖子标题回答如下:
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 ]
5 发表于 2008-01-18 11:07 ·  中国 广东 梅州 电信
中级用户
★★
积分 262
发帖 129
注册 2007-07-11 06:50
19年会员
UID 93679
性别 男
状态 离线
2楼的真是善解人意,可是两个我都复制进去试了一下,都还是非活动,不能变成活动的。

楼上的想知道什么是活动和非活动,你在桌面上点右键属性外观的图那里,就知道了。
6 发表于 2008-01-21 00:29 ·  中国 广东 深圳 南山区 电信
初级用户
蝙蝠侠是写批处理的人
积分 54
发帖 24
注册 2008-01-04 20:34
18年会员
UID 107683
性别 男
状态 离线
:(

  在公司的机器是可以的...家里的的确不行...

  原因大致是 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启动停当的时刻,这个我就暂时没什么主意了……:)
7 发表于 2008-01-21 03:24 ·  中国 广西 钦州 电信
中级用户
★★
海浪人生
积分 206
发帖 103
注册 2007-07-04 00:18
19年会员
UID 93068
性别 男
状态 离线
呵呵 看看大家的思路真觉得是该好好学学了
8 发表于 2008-01-22 08:55 ·  中国 广东 梅州 电信
中级用户
★★
积分 262
发帖 129
注册 2007-07-11 06:50
19年会员
UID 93679
性别 男
状态 离线
TO 7
原来如此~
论坛跳转: