问题描述:
机器上运行了多个不通的软件,我需要对这些软件进行频繁的切换,来查看各个软件界面的显示情况!同时要模拟人工在这些软件界面上做一些输入。
提问:
1.如何实现把不同的软件切换到当前窗口?
2.如何获取当前窗口运行界面上的输入焦点,并且输入预先存好的值到输入框中,并能自动点击确定等按钮!
机器上运行了多个不通的软件,我需要对这些软件进行频繁的切换,来查看各个软件界面的显示情况!同时要模拟人工在这些软件界面上做一些输入。
提问:
1.如何实现把不同的软件切换到当前窗口?
2.如何获取当前窗口运行界面上的输入焦点,并且输入预先存好的值到输入框中,并能自动点击确定等按钮!
解决方案 »
- 数据库与C++问题
- mfc工程,开始就要选择工程类别(单文档、多文档,对话框),如果今后想修改,还能行吗?
- mfc中如何响应键盘光标移动动作
- 高分求教:关于CEditView中修改字体,颜色
- help me!请教大家,谁有VC三层模式连库的程序原码或懂这方面知识的请帮帮忙!
- 我打开.dsw文件时出现以下信息,怎样解决?Cannot access the ClassView information file.ClassView information will not be available
- const CStudent& operator =(const CStudent& s)是什么意思??
- 如何隐藏listctrl的一行?
- 传输丢数据怎么办啊? 高分求急救
- 我写的MFC的计算器程序,但是一点‘=’程序就崩了,请大家帮忙看看,不胜感激
- VC++6.0多国语言--俄语,怎么编译
- assertion falied
HWND hWnd // handle to window
);GetFocus
FindWindow
SendMessage
此外,你需要先考虑好如何来控制,是否需要人工参与。
每个软件窗口上要进行那些操作,以及要输入那些参数,这些可以保存在数据库或者脚本文件里面。
要做的切换程序在把某一软调用到当前窗口时,再从脚本或者库里面获取要进行的操作和输入,模拟人工在当前窗口上完成这些操作和输入,并且讲反馈结果保存下来。这些操作完成之后就切换到下一个软件窗口上去,如此循环。
可以由程序把需要切换的程序进行排列同时显示,然后从配置文件或数据库等地方读出要进行的操作(可能需要事先约定好什么内容或什么状态后需要进行什么操作),然后程序不断读出执行。然后就是进程间通信,
可以通过查找窗口句柄,发消息给该窗口执行操作(但参数只能是简单数据类型),
也可以通过SOCKET或别的方式交互。
2.只要获得对应的窗口句柄,随便SendMessage过去,什么都搞定
那也是,直接通过消息过去!
CWnd *pwnd,*pwndchild;
if(pwnd=CWnd::FindWindow(NULL,_T("SmsTest")))
{
pwndchild=pwnd->GetLastActivePopup();
if(pwnd->IsIconic())
pwnd->ShowWindow(SW_RESTORE);
pwndchild->SetForegroundWindow();
}
至于第二个要用SPY++来得到输入框的句柄
或者先设置前景窗口,再用SendMessage输入你可以去看看我的"VC 获取QQ三国游戏句柄"上边有一个还算类似的例子