为什么用sendmessage(wnd,WM_GETTEXT,1024,integer(@buf));取不到有口令字符edit的内容?(100分)

  • 主题发起人 quantum99
  • 开始时间
Q

quantum99

Unregistered / Unconfirmed
GUEST, unregistred user!
什么用 sendmessage(wnd,WM_GETTEXT,1024,integer(@buf));<br>取不到有口令字符edit的内容?但是可以取到没有设置口令字符的EDIT的内容
 
什么用 sendmessage(wnd,WM_GETTEXT,1024,integer(@buf));<br>取不到有口令字符edit的内容?但是可以取到没有设置口令字符的EDIT的内容,<br>同时对EDIT中的口令字符的设置也没有效果,我用的是<br>&nbsp;SendMessage(Wnd, EM_SETPASSWORDCHAR, ord($0), 0);<br>
 
新的OS修改了代码,不能用这种方法取得Pass了。
 
请教,在win2000下用什么方法取得?
 
好像是在2000中,会判断发送消息者的身份ID,如果不是本程序的,那么就会拒绝访问,<br>本程序的可以得到。
 
这种方式不错
 
在Win2000下不能用此方法
 
怪不得。
 
我用一个取*的程序,可以取2000下的密码。不知他们是如何做到的。<br>程序是:SnadBoy's Revelation v2在华军有下!
 
2000下我看很難﹐bini能發一個給我看看嗎﹖或者告訴具體下載地址看看。謝﹗<br>dadabox_sz@21cn.com
 
关注!<br>
 
这个方法有很多毛病,第一、在win2000中就不行了,第二、它只是局限在于edit框<br>的文本只是显示原来的,例如这样就不行了:我先定义一个全局变量TEMP,然后在edit控件<br>的onkeypress事件中这样TEMP:=KEY;KEY:='a'就不行了,这样用sendmessage(handle,wm_<br>gettext,293,@dkdkdk);就拿不出口令来了,对于这种情况,我也没有办法拿出来,<br>不知道大家有没有好的方法?
 
要用钩子
 
有没有高手指点一下<br>在win2000下如何才能取得密码?
 
奇怪,我以前做这个程序就是在2000里做的,当时是成功了,今天再到2000上去,<br>就不行了,不过我在XP上是可以正常取出来的,<br>在2000里虽然不能取出来,但是可以清空加密标志,直接显出密码来
 
HOHO,原来如此,我以前的程序里是先清加密标志,再取密码的,再恢复的<br>(当然,恢复的时候,如果原来没有加密标志,就不要恢复了)<br>postmessage(curwin,em_setpasswordchar,ord(#0),0);<br>count:=sendmessage(curwin,wm_gettext,100,lparam(@text1));<br>postmessage(curwin,em_setpasswordchar,wparam('*'),0);<br>
 
to xiao_min:<br>&nbsp; 但是我用清空加密标志用sendmessage(curwin,em_setpasswordchar,ord(#0),0);<br>在Win2000下仍然不行?
 
2000下em_setpasswordchar也无效了,应该是加了权限判断之类的东西。<br>SnadBoy's Revelation v2是可以取得密码,我看它是用HOOK技术做的。<br>各位大侠有兴趣研究一下用HOOK怎么搞吧。
 
如果用 SetWindowLong() 改它的风格那会怎么样?<br>Eg: -ES_PASSWORD;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部