Board logo

标题: AppActivate有时得不到焦点啊 [打印本页]

作者: azziporah     时间: 2009-7-27 09:51    标题: AppActivate有时得不到焦点啊
AppActivate在有手动操作或受其他窗口影响时常失效,不能得到焦点,这样就不能SendKey了,有办法解决这个问题么?
或者,有VBS之外的办法么?

作者: HAT     时间: 2009-7-27 13:38
AutoIt

作者: qinchun36     时间: 2009-8-2 08:49
那就每次 SENDKEY 之前 AppActivate 一下,我就这个干的。。。

作者: azziporah     时间: 2009-8-7 00:13
Originally posted by qinchun36 at 2009-8-2 08:49:
那就每次 SENDKEY 之前 AppActivate 一下,我就这个干的。。。


这样有缺陷,如果鼠标点到其它地方去了 AppActivate便再也无法回到焦点了

突发奇想,难道可以用SENDKEY发Alt+TAB或是Win+TAB?
如何确定已经切换到目标窗口了呢

作者: slore     时间: 2009-8-7 02:47
AppActivate

作者: qinchun36     时间: 2009-8-13 23:05
Originally posted by azziporah at 2009-8-7 12:13 AM:


这样有缺陷,如果鼠标点到其它地方去了 AppActivate便再也无法回到焦点了

突发奇想,难道可以用SENDKEY发Alt+TAB或是Win+TAB?
如何确定已经切换到目标窗口了呢



我想你没明白我说的意思,只要知道这个窗口的标题,是绝对可以的,给你个例子自己试试:


set sh = createobject("wscript.shell")
sh.run "notepad"
wscript.sleep 300
msgbox "现在我每隔3秒钟写一次,在间隔时间里面你可以切换到其他窗口,看看我能不能写出三个Fuck来!",48
for i=1 to 3
wscript.sleep 3000
sh.appactivate "记事本"
wscript.sleep 30
sh.sendkeys "Fuck "
next
msgbox "服还是不服!",16

作者: azziporah     时间: 2009-8-14 05:31
非常感谢楼上的热心回答,我用过同样的测试,发现不行,才发这个帖子来问的
我之前也是一直用AppActivate + SendKey 的方法
可惜这个方法需要满足一定的条件,才能运行成功
你可以试一下,最小化目标窗口,或是按下一些快捷键,如常用的Win+D、Ctrl+Alt+Z等等,还有一些事件或活动,都会使这种方法失效
另外,不同语言版本的操作系统的title不一样。再另,Win 7中的Win+P是否有影响尚未测试
也许这样的测试条件过于苛刻了,我只是问一下,有没有好的直接的解决办法,如果没有,只能想曲线救国的办法

作者: qinchun36     时间: 2009-8-14 07:15
Originally posted by azziporah at 2009-8-14 05:31 AM:
非常感谢楼上的热心回答,我用过同样的测试,发现不行,才发这个帖子来问的
我之前也是一直用AppActivate + SendKey 的方法
可惜这个方法需要满足一 ...


尴尬鸟。。。
还真是受教了,哪天研究一下怎么排除这些特殊的快捷键的影响