如何将文字信息,模拟人工输入到指定窗口?

guidechen 2006-10-12 10:35:05
如何将文字信息,模拟人工输入到指定窗口?
具体是,有一个application!,有一个信息录入窗口,然后有一个“保存”键,我想用另外一个程序application2,实现从另外一个数据库提取文字信息,输入到application1的那个信息录入窗口。
application1可以最小化窗口,并非一直是当前窗口,请问怎么实现。
...全文
241 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
spirit_sheng 2006-10-14
  • 打赏
  • 举报
回复
使用FindWindow取得信息录入窗口的句柄, 然后向此窗口发送
WM_SETTEXT消息

此方案可以分为两步:
(1) 获取信息录入编辑框的窗口句柄
(2) 根据句柄设置输入内容

对于(2), 其示例如下
// 假设已经获得窗口句柄为hDst
var
s: String;
begin
s := 'Demo';
SendMessage(hDst, WM_SETTEXT, 0, Integer(@S[1]));
end;
此种方法对于编辑框、能够输入的ComboBox有效

对于(1),需要根据分析你的application1
分析的你应用程序的窗口结构可以使用Spy++, (Microsoft Visual Studio附带此工具)
其有一个Find Window功能,将那个功能中的图标拖到你的窗口上,就可以显示窗口的详细信息
然后可以根据窗口的树形结构分析窗口之间的关系
关系清楚了,使用FindWindow, FindWindowEx, GetNextWindow这三个API就可以解决你的问题,


HWND FindWindow( // 查找某一窗口
LPCTSTR lpClassName,
LPCTSTR lpWindowName
);
HWND FindWindowEx( // 查找某一窗口的子窗口
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);
HWND GetNextWindow( // 获取窗口的上一个或下一个窗口
HWND hWnd,
UINT wCmd
);




guidechen 2006-10-12
  • 打赏
  • 举报
回复
有人做过这样的吗??????

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧