先获取了号码窗口和密码窗口的句柄,然后通过SendMessage获取号码和密码,号码能成功获取,但密码获取不了,为什么?
SendMessage(hNumWin, WM_GETTEXT, 24, (LPARAM)pNum);
SendMessage(hPassWin, WM_GETTEXT, 24, (LPARAM)pPass);
用spy查看过,hPassWin数值没有错误,但为什么不能读取?别的查看软件能查看,他们不是用SendMessage获取的?还有什么更好的办法?

解决方案 »

  1.   

    获取要放在“登陆”按钮响应了之后去,你是怎么获取的?就是用SendMessage发送WM_GETTEXT
      

  2.   

    不知是什么时候更新的,非本进程向带有密码属性的窗口发送WM_GETTEXT消息是得不到其内容的,只有自身进程发送的WM_GETTEXT消息才能得到。所以你可以采用将这个获取密码的函数做成dll注入到目标进程进行获取操作
      

  3.   

    那看来只有远程线程插入或者hook了;
      

  4.   

    网上流传的取Win2000“*”密码的方法 
     
     程序相当简单,我没有做试验,估计那个Sleep延时比较重要。 
    char Char;
    char PassWord[255];
    Char = SendMessage (MainWnd,EM_GETPASSWORDCHAR,0,0);
    PostMessage (MainWnd,EM_SETPASSWORDCHAR,0,0);
    Sleep (100);
    SendMessage (MainWnd,WM_GETTEXT,255,long(PassWord));
    PostMessage (MainWnd,EM_SETPASSWORDCHAR,Char,0);