龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

用vc++穷举windows应用程序密码(下)(5)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam) { if (!IsWindowVisible(hwnd)) return true;//子窗口不可见继续枚举下一子窗口 char szTemp[128]=""; DWORD dwStyle; switch((long)lParam)

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)

精彩图集

赞助商链接