我用SendMessage把WM_GETTEXT发出来了可是取不到值,普通的Edit中的内容都可以取出来,但就是取不出密码框中的内容!有谁能告诉我怎么解决!!!谢谢!!!
(我取的内容不是本进程的,是windows中的任意进程中的Edit!!!)

解决方案 »

  1.   

    是这样的,从win2k开始禁止了对其他进程中密码框取值,所以只好用钩子把相应的dll介入到目标进程,这时dll中的代码就是目标进程的一部分了,这样就可以取密码了。
    这种方法可参考http://asp.6to23.com/nowcan/tech/psw_view.htm
    另外网上还流传了一种简单的办法,不过我没有试过,如果真的可行那应该是微软在这个问题上考虑不周。
    程序相当简单,我没有做试验,估计那个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);