得到另一个进程制定窗口的rect解决方案

得到另一个进程制定窗口的rect
我想做一个程序,需要得到另一个进程上某一个窗口的位置。
各位高手多多指点,没有什么头绪阿.

------解决方案--------------------
EnumWindows 得到窗口句柄。
有了句柄用GetWindowRect得到RECT
------解决方案--------------------
不懂,你的要求是做什么的?
------解决方案--------------------
你没有说清楚需求。
------解决方案--------------------
取另外一个进程的PID
EnumWindows传入此PID
GetWindowThreadProcessId取得每个窗口的进程是否与传入的进程相同.
然后判断窗口位置,如果是子窗口的话还得EnumchildWindows
------解决方案--------------------
FindWindow
EnumWindows
这些都可以
------解决方案--------------------
FindWindow函数获得hwnd,在通过GetClientRect获得位子
------解决方案--------------------
CWnd *pWnd = NULL;
pWnd = FindWindow(NULL, "QQ用户登录 ");
if( pWnd )
{
CRect rect;
pWnd -> GetWindowRect(rect);
CString str;
str.Format( "%d,%d,%d,%d ",rect.left,rect.top,rect.right,rect.bottom);
m_ctlbmpstatic.SetWindowText(str);
}
------解决方案--------------------
VC里的 spy++可查看系统当前 所有 窗口的细节..
先运行查看spy++弄清程序里窗口的层次关系..
然后具体函数大家都说了.我只罗列下了.
findwindow()
findwindowex()
EnumWindows()
GetWindowRect()
获得了hWnd后 调用 getwindowrect() api就可以了..

如获得记事本编辑区大小.
HWND hWnd1,hWnd2;
hWnd1=FindWindow( "Notepad ",NULL);//如果是固定某个进程的话就查出的窗口类名好了.
//如果是查任意进程的话 就使用enumwindows传入pid咯///
hWnd2=FindWindowEx(hWnd1,NULL, "edit ",NULL);
RECT rect;
GetWindowRect(hWnd2,&rect);
手写,不保证正确性.
具体函数用法见 ----> google & baidu