[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] VBS如何实现某个窗口总在最前端,也就是某个窗口总是当前活动窗口

本帖最后由 xiaoxiami 于 2012-2-8 17:42 编辑

问题如下:
     目前我使用VBS的run启动了一个test.exe的窗口,然后需要在窗口里面输入命令来执行某些操作,我是利用SendKeys来模拟键盘的输入,但是现在遇到一个问题,我在用SendKeys输入命令之前利用了sleep来进行2~3秒的延时,然后在执行SendKeys来输入命令,但是在这个2~3秒的延时时很可能会弹出一个其他窗口导致test.exe不是当前的活动窗口了,sleep进行延时一定是需要使用的,因为我启动test.exe窗口需要一点时间。如何使用VBS解决这个问题。
     还想请教一个输入法的问题,我如何保证在启动一个窗口之后输入命令之前保证这个窗口使用的输入法是英文输入法,设置默认输入法除外,因为不是每台电脑的默认输入法都是英文的。也就是在用SendKeys来模拟键盘输入之前确保输入法是英文的。

  1. AppActivate 方法
  2. 请参阅
  3. 运行脚本 | WshShell 对象 | SendKeys 方法
  4. 激活应用程序窗口。
  5. object.AppActivate title
复制代码

TOP

回复 2# ivor


    嗯,这个我昨天后然自己查找到了AppActivate这个方法,但是昨天根据窗口的标题来激活窗口,但是AppActivate不起作用,想利用PID来激活窗口,请问如何自动获取某个已运行的进程的PID号呢?
   另外,我的输入法的问题有想法么,大侠!

TOP

用SendKeys,失败是必须的、肯定的、绝对的

TOP

用SendKeys,失败是必须的、肯定的、绝对的
powerbat 发表于 2012-2-9 15:22


+10086

TOP

回复 4# powerbat


    为什么呢?还望指教,假如不用SendKeys模拟输入,那么使用什么命令来输入呢?谢谢

TOP

试试我的方法,利用剪切板粘贴
  1. str="\r\n" '这是换行符
  2. strkey="1好不好"&str
  3. strkey=strkey &"2-Nice"
  4. Set mShell = CreateObject("wscript.Shell")
  5. mshell.run "notepad",1
  6. mshell.run "mshta ""javascript:clipboardData.setData('text','"&strkey&"');close();""",0
  7. wsh.Sleep 1000
  8. mShell.sendkeys "^v",true
复制代码

TOP

返回列表