如何在基于对话框的程序中获取其他程序中的文本框中的内容啊?
希望告之!!谢谢了!!

解决方案 »

  1.   

    处理WM_MOUSEMOVE消息得到文本框的位置,然后
    GetWindowText(WindowFromPoint(point))
      

  2.   

    我以前编过一个程序,在DLL中直接使用getfocus()得到当前具有焦点的子窗口的句柄。其实也可以在EXE中操作,但是有点麻烦:CString CGetFocusDlg::GetForegroudWndFocusWndText(void)
    {
    CWnd * mainwnd, *subwnd;
    DWORD dwthreadforeground, dwthreadthis;

    //获得当前活动窗口
    mainwnd = GetForegroundWindow();

    //获得活动窗口的线程号
    dwthreadforeground = ::GetWindowThreadProcessId(mainwnd->m_hWnd, NULL);
    //获得与自己程序的窗口相关的线程号
    dwthreadthis = ::GetWindowThreadProcessId(m_hWnd, NULL);

    //将两个线程的输入联系起来,只有这样,GetFocus函数才能获得其它线程中的焦点窗口
    ::AttachThreadInput(dwthreadthis, dwthreadforeground, TRUE);

    //得到当前的具有输入焦点的子窗口
    subwnd = GetFocus();

    char lpszText[MAX_PATH];
    //获得窗口中的文字信息
    ::SendMessage(subwnd->m_hWnd, WM_GETTEXT, WPARAM(MAX_PATH), LPARAM(lpszText));

    //将联到一起的两个线程的输入分离
    ::AttachThreadInput(dwthreadthis, dwthreadforeground, FALSE);

    return lpszText;
    }
      

  3.   

    那只能用钩子了,钩住这个程序的按钮信息。然后GetWindow(GW_CHILD);取子窗口,最后再GerWindowText
      

  4.   

    老大,我上面给你的那段程序还不够完整吗?你需要做的只是给它加个外壳而已,如果是希望能在该程序的确定按扭按下时,获取几个文本框的内容!!只需要你先点一下想要获取文本的那个位置,并触发GetFocusDlg::GetForegroudWndFocusWndText(void)(至于怎么触发,看你的爱好了,但是有一点绝对不能做,不要想用鼠标点个按钮来触发,那样你只会得到这个按钮的文本。可以用热键什么的来触发)将其返回值保存起来。当你按确定按扭时,一并将他们显示出来就可以拉。