中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何用bat后台运行explorer 上一主题 | 下一主题
kidzgy
中级用户





积分 262
发帖 129
注册 2007-7-11
状态 离线
『楼 主』:  如何用bat后台运行explorer

taskkill /im explorer.exe /f >nul && start  explorer.exe > nul 中的
start  explorer.exe
直接用上行的,运行完exp之后,本来在焦点处在批处理当中的,焦点移走了。

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

要怎么样可以后台运行exp,这样就不影响对批处理的按键了,否则要鼠标按一下

2008-1-17 19:21
查看资料  发送邮件  发短消息 网志   编辑帖子
BatMan
初级用户

蝙蝠侠是写批处理的人



积分 54
发帖 24
注册 2008-1-4
状态 离线
『第 2 楼』:  

兄台,我越来越想知道你打算干什么了,呵呵...

我这里给的方案不是后台跑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 ]

2008-1-17 21:08
查看资料  发送邮件  发短消息 网志  OICQ (25013672)  编辑帖子
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 3 楼』:  

又是mshta,看来得花点功夫了

2008-1-17 21:13
查看资料  发短消息 网志   编辑帖子
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 4 楼』:  

根据帖子标题回答如下:

  Quote:
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 ]

2008-1-17 21:17
查看资料  发短消息 网志   编辑帖子
kidzgy
中级用户





积分 262
发帖 129
注册 2007-7-11
状态 离线
『第 5 楼』:  

2楼的真是善解人意,可是两个我都复制进去试了一下,都还是非活动,不能变成活动的。

楼上的想知道什么是活动和非活动,你在桌面上点右键属性外观的图那里,就知道了。

2008-1-18 11:07
查看资料  发送邮件  发短消息 网志   编辑帖子
BatMan
初级用户

蝙蝠侠是写批处理的人



积分 54
发帖 24
注册 2008-1-4
状态 离线
『第 6 楼』:  

:(

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

  原因大致是 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启动停当的时刻,这个我就暂时没什么主意了……:)

2008-1-21 00:29
查看资料  发送邮件  发短消息 网志  OICQ (25013672)  编辑帖子
p1509101
中级用户

海浪人生


积分 206
发帖 103
注册 2007-7-4
状态 离线
『第 7 楼』:  

呵呵 看看大家的思路真觉得是该好好学学了

2008-1-21 03:24
查看资料  发送邮件  发短消息 网志   编辑帖子
kidzgy
中级用户





积分 262
发帖 129
注册 2007-7-11
状态 离线
『第 8 楼』:  

TO 7
原来如此~

2008-1-22 08:55
查看资料  发送邮件  发短消息 网志   编辑帖子

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: