Board logo

标题: [问题求助] 从一个程序中转到另一个程序操作时,怎样把焦点转移到下一个程序? [打印本页]

作者: cshiq    时间: 2012-10-8 19:57     标题: 从一个程序中转到另一个程序操作时,怎样把焦点转移到下一个程序?

本帖最后由 cshiq 于 2012-10-8 20:01 编辑

功能:在任何程序上输入要查询的内容,调用VBS程序,直接用MDICT词典打开并显示查询结果。

VBS实现方式:
1、输入要查询的字词,剪切到剪切板上;打开MDICT程序。

该段代码为:

set WshShell=createobject("wscript.shell")
WshShell.sendkeys "+{HOME}"
WshShell.sendkeys "^{x}"

Set objShell = CreateObject("Wscript.Shell")
objShell.Run "D:\MDictPC\MDict.exe"

2、回车(该程序回车可以定位到查询输入框);粘贴;回车(确认查询)

该段代码为:

set WshShell=createobject("wscript.shell")
WshShell.sendkeys "{ENTER}"
WshShell.sendkeys "^{v}"
WshShell.sendkeys "{ENTER}"

如果分段执行,即先执行1段,再执行2段,可顺利实现查询。

现在将上面两个步骤合并执行,将上面两段代码合并为一个程序后,第二段要求在词典MDICT中执行的代码也在开始输入的程序中执行了,而不是在词典MDICT中执行。
比如说在记事本中输入要查询的“好”字,分开执行就可以在MDICT中查到“好”字的解释。合并在一起执行,它就在记事本中执行剪切、回车、再复制、回车等操作。

请帮助修改,实现上面两段代码一并执行时,第二段代码能在词典MDICT执行的方案。
作者: wc726842270    时间: 2012-10-8 20:15

每个步骤都做一下延时
作者: cshiq    时间: 2012-10-8 20:36

每个步骤都做一下延时
wc726842270 发表于 2012-10-8 20:15


延时之后,在后一个程序是已经打开了的情况下可以把焦点转到后一个程序,如果后一个程序没有打开的话,问题依旧。
作者: forfiles    时间: 2012-10-8 22:21

  1. objShell.Appactivate "窗口标题"
复制代码

作者: cshiq    时间: 2012-10-9 05:22

请行家帮忙改一个完整的,谢谢。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2