有两个程序A、B,现在我要程序A来抓取程序B界面中文本框中的内容,在程序B中有一个“确定”按钮,只要鼠标单击或回车后,这个按钮就可以抓取程序B中的内容,现在我制作了键盘钩子和鼠标钩子,鼠标现在能拦截成功,但是回车却没法成功(因为这个程序在文本框跳转也是用回车,键盘钩子不能拦截所有回车,只能拦截“确定”按钮上的回车),我怎样才能确定按回车时在”确定“按钮上,用API:GetFocus()只能得到程序A中的有焦点控件的句柄(A是当前窗口的情况下,如果不是返回空)如果程序B是活动窗口,用API:GetFocus()都返回空。
请问有没有其它方法能实现:程序A中怎样实现捕获程序B中“确定”按钮上的回车

解决方案 »

  1.   

    GetFocus()是取具有输入焦点的窗口的句柄,指的是那些textbox输入控件,并不是按钮。试试下面2个API
    --------------------
    GetActiveWindow()
    说明 
    获得活动窗口的句柄 
    返回值 
    Long,活动窗口的句柄,如没有窗口处于活动状态,则返回零值 
    GetForegroundWindow()
    说明 
    获得前台窗口的句柄。这里的“前台窗口”是指前台应用程序的活动窗口 
    返回值 
    Long,前台窗口的句柄 
      

  2.   

    我就用GetForegroundWindow()
    获得B窗口的句柄的,但再用GetFocus()就返回空,并且我已经试验过GetFocus()可以返回按钮的句柄(VS2003)。