VB新手问题,请大虾帮忙解答一下

来源:百度知道 编辑:UC知道 时间:2024/05/31 05:23:32
问题:WINDOWS内的计算器打开后在里面输入信息,如何监听到他的文本框数字的变化(计算器是隐藏的),并且映射到Text1.text中?
需要哪个API或是什么条件和工具?
除了这个还有吗?好像真不错,我试下哈

WINDOWS内的计算器的文本框是个Edit控件,你要监视它之前要得到它的句柄,在Timer中用getwindowtext(hwnd,text)函数,再text1.text=text就可以了.

可能用到的函数:
GetWindowText
FindWindow

方法:
用FindWindow函数,通过它的标题(计算器)先找到程序的句柄,再FindWindow,用查找子窗口的参数一级一级的向下找,直到找到那个EDIT,用SetWindowText试下能不能改变它的内容,能改就是找到了,那么就记下是第几次的子窗口(这个数字是不可能变的),在你的程序中就能监视它了.

还有一种方法,但要有隐藏计算机前操作:
函数:WindowFromPoint
还是先用findwindow找到计算器的程序句柄,用GetWindowRect得到它左上角坐标,显示数字的框和程序左上角的位置偏移是不会变的,用WindowFromPoint函数,参数是显示框和左上角的位置偏移,这样就直接找到它了.
再补充下,注意在屏幕和用户间的坐标转换,会用到ClientToScreen和ScreenToClient两个函数.

FindWindowEX?