中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 17:26
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » vbs- appactivate 标题框获取问题--值得研究!
楼 主 vbs- appactivate 标题框获取问题--值得研究! 发表于 2007-11-23 16:49 ·  中国 广东 广州 天河区 电信
初级用户
积分 98
发帖 39
注册 2007-03-16 11:19
UID 81943
性别 男
状态 离线
看了不少vbs教程...发现vbs里的sendkeys非常好用.很多教程都是说通过appactivate 获取到标题框后就进行sendkeys自动化操作.之前也屡试不爽.今天才发现..好像sendkeys根本不是对appactivate获取的特定程序进行操作的.而是对当前的活动窗口进行操作.

set s= WScript.CreateObject("WScript.Shell")
s.run "notepad"
WScript.Sleep 3000
s.AppActivate "无标题 - 记事本"
s.SendKeys "%{f4}"


当记事本打开的时候你再点击一下其它窗口,它关闭的就会是你点击的活动窗口而不是记事本.

另:
  有没哪位大侠能帮我解决这一问题呢.开机同时启动两个程序的,我之前希望用sendkeys对后面那个进行操作的.但现在这样的话它就把操作都应用到第一个程序上面了.(不想靠wscript.sleep延长时间来操作),救?
2 发表于 2007-11-23 16:59 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
好像sendkeys根本不是对appactivate获取的特定程序进行操作的.而是对当前的活动窗口进行操作.

SENDKEYS就像你自己输入一样,是你激活的窗口,就是前台窗口……
是你以前理解错了……

appactivate就是避免这个情况,先让那个窗体成为当前窗体再sendkeys

你想后台的话脚本是不能实现的。你sendkeys的时候还是不要随便改变当前窗体。
3 发表于 2007-11-23 17:05 ·  中国 广东 广州 天河区 电信
初级用户
积分 98
发帖 39
注册 2007-03-16 11:19
UID 81943
性别 男
状态 离线
清楚明白..谢谢..非常感谢..再次感谢
论坛跳转: