用vc++穷举windows应用程序密码(下)(5)
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
if (!IsWindowVisible(hwnd)) return true;//子窗口不可见继续枚举下一子窗口
char szTemp[128]="";
DWORD dwStyle;
switch((long)lParam)
{case INPUTDIALOGID:
if(!m_bPasswordStyle)
{//尚未找到密码编辑框进入
dwStyle=(DWORD)GetWindowLong(hwnd,GWL_STYLE);
if((dwStyle & ES_PASSWORD)== ES_PASSWORD)
{ //是密码编辑框
//枚举新密码,保存到公共变量lpszPassword中
EnumPasswordString();
::SendDlgItemMessage(::GetParent(hwnd),GetWindowLong(hwnd,GWL_ID),WM_SETTEXT,0,(LPARAM)(LPCTSTR)lpszPassword);
m_bPasswordStyle=true;//置密码编辑框发现标志
if (hButton1!=NULL)//若已经发现确定按钮,发送消息
//复位各个变量,返回false 停止枚举
{::SendMessage(::GetParent(hButton1),WM_COMMAND,(WPARAM)::GetWindowLong(hButton1,GWL_ID),(LPARAM)hButton1);
bFetched=true;
hButton1=NULL;
m_bPasswordStyle=false;
return false;
}
return true;//还未发现确定按钮,继续枚举子窗口
}
}
if(hButton1==NULL)

