-
-
[原创][原创]句柄战争 如何获取Windows下隐藏的句柄
-
发表于:
2010-11-5 11:06
8607
-
[原创][原创]句柄战争 如何获取Windows下隐藏的句柄
我们知道在跨进程操作窗体中,可以通过以下的方式操作窗体(源码直接复制可用)
但是在一些程序中,往往隐藏了子窗体,应该如何获取呢?
根据网络上的讨论,窗体句柄是无法隐藏的,可能是将子窗体设置成可见,多次派生
所以无法定位到句柄,大家讨论一下,如何快速获取隐藏的窗体?
//每次讨论都会奉献一段经过测试的实用代码
//以下是在这次讨论的代码
HWND hWnd;
DWORD style=0;
hWnd=::FindWindow("Static",0); //设置需要搜索的窗体参数
if( hWnd ==NULL)
{
AfxMessageBox(_T("无法进入hWnd句柄"));//MFC环境下,API环境下MessageBox
}
else
{
AfxMessageBox(_T("成功打开句柄"));
}
//枚举句柄下的子窗体
DWORD thread,process;
thread=GetWindowThreadProcessId(hWnd,&process);
if (GetWindowHandleByPID(thread)!=NULL)
{
}
HWND hwndChild = ::GetWindow( hWnd, GW_CHILD);
while(hwndChild)
{
style=::GetWindowLong(hwndChild,GWL_STYLE);
if(54000000==style)
{
//发送鼠标点击
::SendMessage(hwndChild,WM_RBUTTONUP,0,MAKELPARAM(146,150));
}
if(0x50010000==style)
{
//发送消息信息
::SendMessage(hwndChild,WM_SETTEXT, 0, (LPARAM)_T("123123"));
}
hwndChild = ::GetWindow( hwndChild, GW_HWNDNEXT);
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!