问题在这里!!
WshShell.AppActivate "Untitled - Notepad"
你是英文版的操作系统啊??
Untitled - Notepad
这个就是你窗口的标题!你要保证没有写错!区分大小写的!
还有你可以考虑只写"Untitled"只要是窗口标题的前几个字母就行了!这样就可以了!
我试过了是可以的!!
还有,要把sleep 1000时间缩短,50就够了!!
你等了两秒,把窗口激活了,再等一秒什么意思,应在在激活窗口后,尽快发送键值!!
不好意思,误会楼主啦,我试验了一下,确实无法激活(winxpsp3系统)。至于你说的“任务栏图标在闪”那不是AppActivate的作用,是windows的功能,他会自动把新打开的无焦点程序闪几下让你知道。
####################################
楼主真是奇怪,你干吗非要在Sleep 2000之后用鼠标在桌面上点一下呢?本来WshShell.AppActivate "Untitled - Notepad" 激活记事本到前台,语句工作就完成了,它又不是一直在检测窗口是否一直在前台!
答案补充:嗯,我试过了,但是在我的机器上能够正常运行,也就是只要窗口不被最小化就能成功发送按键。楼主的问题如果不是前述原因的话就真不知道怎么回事了。
=======================
首次回答:AppActivate功能是激活指定的窗口,而不会对窗口的大小(最大化、最小化)造成影响。而Sendkeys语句能发送按键的必要条件是窗口不但要激活,而且不能是最小化模式。所以肯定是某个操作让Notepad窗口最小化了,所以虽然激活了窗口仍然不能发送按键。