vc控制台下,已知另一窗口名称和句柄,如何激活?
我把mfc下的代码照搬过来激活不了窗口,GetWindowRect取得的窗口坐标也非常之大,::SetForegroundWindow(hWnd);::SwitchToT...
我把mfc下的代码照搬过来 激活不了窗口, GetWindowRect取得的窗口坐标也非常之大,
::SetForegroundWindow(hWnd);
::SwitchToThisWindow(hWnd);
::BringWindowToTop(hWnd);
这三个我都试过了好像都不行。。求助
POINT lpPoint1,lpPoint2;
CRect rc;
HWND hWnd;
while(NULL!=(hWnd=::FindWindow(NULL, (LPCWSTR)"获取真实IP")))
{
Sleep(5000);
}
::GetWindowRect(hWnd,&rc);
lpPoint1.x = rc.left+75; //75,90 75 120
lpPoint1.y = rc.top+90;
lpPoint2.x = rc.left+75;
lpPoint2.y = rc.top+120;
//::SetForegroundWindow(hWnd);
//::SwitchToThisWindow(hWnd);
::BringWindowToTop(hWnd);
Sleep(5000);
SetCursorPos(lpPoint1.x, lpPoint1.y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
窗口没有激活, 而且鼠标点的位置也不对,点到桌面的最左下角了, 展开
::SetForegroundWindow(hWnd);
::SwitchToThisWindow(hWnd);
::BringWindowToTop(hWnd);
这三个我都试过了好像都不行。。求助
POINT lpPoint1,lpPoint2;
CRect rc;
HWND hWnd;
while(NULL!=(hWnd=::FindWindow(NULL, (LPCWSTR)"获取真实IP")))
{
Sleep(5000);
}
::GetWindowRect(hWnd,&rc);
lpPoint1.x = rc.left+75; //75,90 75 120
lpPoint1.y = rc.top+90;
lpPoint2.x = rc.left+75;
lpPoint2.y = rc.top+120;
//::SetForegroundWindow(hWnd);
//::SwitchToThisWindow(hWnd);
::BringWindowToTop(hWnd);
Sleep(5000);
SetCursorPos(lpPoint1.x, lpPoint1.y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
窗口没有激活, 而且鼠标点的位置也不对,点到桌面的最左下角了, 展开
1个回答
展开全部
你有试过把
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
注释掉吗?
SetForegroundWindow一般这个就可以了,
还有个函数是SetWindowPos,
是不是你鼠标模式事件因为点的不是这个窗口,原来激活的又被去掉了?
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
注释掉吗?
SetForegroundWindow一般这个就可以了,
还有个函数是SetWindowPos,
是不是你鼠标模式事件因为点的不是这个窗口,原来激活的又被去掉了?
更多追问追答
追问
这段代码放在mfc里是正常的, 鼠标模式没问题的, 但是放在控制台程序里 ::GetWindowRect(hWnd,&rc);获取的坐标就不对了。。
追答
窗口激活问题还有吗?
那就换个函数啊,试试GetWindowRgn?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询