求VB程序:可以将已知信息自动填写到另一程序窗口的文本框

马行空牛耕田 香港励凌科技有限公司 架构师  2005-07-06 10:06:25
如题,本VB程序需要将一组信息自动填写到另一个程序窗口的某些文本框。

本程序的难点在于本VB程序和要被自动填写信息的另一程序属于不同的体系,另一程序甚至有可能是HTML页面(它上面也有文本框)。

本人初步的想法是假定知道另一个程序文本框的象素定位(或者其他座标定位),然后模拟鼠标移动到该位置,再模拟鼠标点击事件,点击该文本框;然后将信息送入系统剪贴板;再模拟键盘动作“Ctrl + V”,粘贴该信息。但本人是VB菜鸟,不知道该如何实现,请大虾帮忙,分不够可以另加!
...全文
330 点赞 收藏 23
写回复
23 条回复
马行空牛耕田 2005年07月11日
To 浩子:
因为其他部分涉及到操作硬件,所以还是使用Windows平台的开发语言比较好。
另外网页的情况暂时不管了,就只处理Windows平台下的程序。

现在窗体的句柄也已经取到了,但是窗体内的Text框的句柄怎么找到呢?
回复 点赞
浩子 2005年07月11日
先不要管是不是用VB,你用你熟悉的开发软件会如何实现?
Windows程序可以用上面所说的,找句柄,赋值来实现,
网页的我也不清楚,看参考一下人家的自动填表系统能不能有所启发?

没办法,帮不上你~。
回复 点赞
两个各不相同!分开来写,一个一个解决。窗体是窗体,HTML是HTML
回复 点赞
马行空牛耕田 2005年07月11日
再up一下,呜呜
回复 点赞
chcky 2005年07月11日
好像我以前做过截取文本框的内容,还要填进去是没做过了。
回复 点赞
马行空牛耕田 2005年07月11日
To flyingZFX:
呵呵,是啊,但是如果我用座标定位,模拟鼠标移动动作,就不用管是不是windows程序还是HTML form了。 获取句柄只是特别针对Windows程序
回复 点赞
flyingZFX 2005年07月11日
呵呵,这个,基本上很难。

Html里的文本框和 普通窗口上的文本框是属于不同的概念。
回复 点赞
马行空牛耕田 2005年07月10日
UP一下,我是菜鸟,希望有个较为完整的例子! 谢谢了
回复 点赞
马行空牛耕田 2005年07月06日
对不起楼上两位,我可能没有描述清楚:

1、首先,另一程序是随意的,不是已知的,因为该VB程序需要填充不同的“另一程序”,有时候是图书管理系统的会员注册窗口,有时候是酒店管理系统的客户入住登记窗口

2、另一程序甚至有可能是IE窗口,这样获取句柄,sendmessage可能就无用武之地了!
回复 点赞
laeep 2005年07月06日
在系统中遍厉所有窗口的句柄 找到你要的 然后用SendMessage 来实现
回复 点赞
EnumChildWindows 要回调,写一个过程,用AddressOf传入。MSDN中EnumFontFamily()的例子,和这个差不多。或者用GetDlgItem得到ID
回复 点赞
daixinhou 2005年07月06日
查查句柄相关的资料,获取另一程序的句柄可以实现的.
回复 点赞
马行空牛耕田 2005年07月06日
DDE似乎不行,我不能对待填充的目标程序进行修改的!
回复 点赞
Winters_lee 2005年07月06日
使用DDE向另外那个程序发送信息,就可以了。
DDE应该支持很多的吧。
回复 点赞
马行空牛耕田 2005年07月06日
我现在拿到了窗体的句柄,但是我如何获取该目标窗体中的text框的句柄呢,或者说,给这个窗体的text框赋值呢? 我是菜鸟,别打我 ^_^
回复 点赞
马行空牛耕田 2005年07月06日
To caozhy(caozhy)
多谢,正在使用PostMessage中
回复 点赞
可以记录对应程序的标题,控件的ID,写成配置模板,用上面的方法。
回复 点赞
SetWindowText() SetDlgItemText()
回复 点赞
PostMessage
回复 点赞
马行空牛耕田 2005年07月06日
To laeep(laeep)
谢谢,我也查了SendMessage的功能,发现它似乎只能对程序内的窗体进行操作。 再次强调,我要自动填充的目标程序(网页)和本VB程序不在一个程序内,是完全各自独立的。
回复 点赞
发动态
发帖子
VB基础类
创建于2007-09-28

2746

社区成员

19.7w+

社区内容

VB 基础类
社区公告
暂无公告