|
![]() | 作者: cimsxiyang [cimsxiyang]
![]() |
登录 |
我们在使用Windows时,经常会碰到一些密码编辑框,输入其中的文字都以“*”显示。现在,有许多共享软件和自由软件都可以实现隐藏密码的正确显示。究竟这是怎样实现的呢!其实,这比较简单,虽然这些信息都以“*”显示,但其内部还是以当初的字符表示,所以,我们只要用Windows API函数就可以实现。 在Windows中,每一个窗口、控件都有它的名字(叫做Name或Window Text)。对于Form、Dialog Box、Message Box来说,名字就显示在Title Bar中;对于Edit、Button、Static Control,名字显示在他所占的区域中。密码编辑框本身就是个Edit控件,虽然显示的是特殊字符,但名字属性没有变,还是输入时的字符。Windows提供了两个API函数来获得这个名字: int GetWindowTextLength(HWND hWnd); // 得到名字的长度 其中,hWnd :想要得到的那个窗口或控件的句柄 handle int GetWindowText(HWND hWnd, LPTSTR lpString, int nMaxCount );// 得到名字 其中,hWnd :想要得到的那个窗口或控件的句柄 handle; lpString:存放名字的字符串的地址 nMaxCount :可拷贝的最大字符数 下面以Delphi为例,说明它的实现过程。 新建一Form,放置Label、Edit、Button各一个到Form中,将Edit1的PasswordChar属性改为“*”,双击Button1: procedure TForm1.Button1Click(Sender: TObject); var Name:PChar; // 名字 L:integer; // 名字的长度 begin L:=GetWindowTextLength(Edit1.handle)+1; // 得到名字长度,并将长度加1 GetMem(Name,L);//为将要得到的名字分配内存 GetWindowText(Edit1.handle,Name,L);//得到名字 label1.Caption:=String(Name); // 将得到的名字显示于 Label1 FreeMem(Name,0); // 释放分配的内存 end; 经过运行,在Edit1中输入的密码就可通过Label1显示出来。 [notes] 原创:疾风之猫 http://www.code-labs.com/article/articleinfo.php?id=113 想要看执行情况,可以去我的信箱取: cimsxiyang@21cn.com 密码:20cnxiyang 我没有时间去做美工啊 所以界面比较难看 还请多见谅啊 哈哈................ [此贴被 夕阳(cimsxiyang) 在 4月11日21时11分 编辑过] |
地主 发表时间: 4/11 21:47 |
![]() | 回复: cjd009 [cjd009] ![]() |
登录 |
呵呵!!!!! 真是个好人啊!!!!! 你是那样的聪明!!!! |
B1层 发表时间: 04/12 00:35 |
![]() | 回复: xiaojun [xiaojun] ![]() |
登录 |
不错,大家都看看。 |
B2层 发表时间: 04/12 09:16 |
![]() | 回复: cimsxiyang [cimsxiyang] ![]() |
登录 |
呵,我本来就很好,我以后会更好的东西给大家。 :) |
B3层 发表时间: 04/13 00:48 |
![]() | 回复: abcdef [abcdef] ![]() |
登录 |
很强啊!!!11 |
B4层 发表时间: 04/13 10:43 |
![]() | 回复: guansheng [guansheng] ![]() |
登录 |
啊----!屁哦!!!这样的东西也拿得出手!!!!! 谁也知道的啊!!!!!!!!!!!!! |
B5层 发表时间: 04/13 21:27 |
![]() | 回复: cimsxiyang [cimsxiyang] ![]() |
登录 |
对于楼上的兄弟的说法,我有如下看法: 一、你说的没错,确实很简单,也感谢你对我提出意见。 二、假如你认为这个是非常的简单,不值一提,或者是说完全的错误,那么,请不要停留在口头上,可以拿出你的实际行动来:“用程序来说话。”! 假如你真的能做到这一点,我们还是非常欢迎的。毕竟,大家在这个过程中可以学到东西,同时,也营造了比较浓的学习氛围。 三、从客观上讲,你这个帖子没有任何价值。从某中角度来讲,还打击了发帖人的积极性(比我脸皮薄的人太多啦!^_^) [此贴被 夕阳(cimsxiyang) 在 4月14日0时28分 编辑过] |
B6层 发表时间: 4/14 0:37 |
![]() | 回复: tysx [tysx] ![]() |
登录 |
斑竹说的太好了 |
B7层 发表时间: 04/14 17:44 |
![]() | 回复: sainthero [sainthero] ![]() |
登录 |
cimsxiyang编程用的是delphi?? 我学的是delphi 现在在座毕业设计,有时间请多指教了 |
B8层 发表时间: 05/03 19:53 |
![]() | 回复: cimsxiyang [cimsxiyang] ![]() |
登录 |
相互学习吧! 不妨将你的课程设计的课题拿出来给大家看看。? |
B9层 发表时间: 05/03 20:21 |
![]() | 回复: qingmu [qingmu] ![]() |
登录 |
你好 我是新手 你的那个邮箱怎么打不开哈 |
B10层 发表时间: 05/03 20:57 |
![]() | 回复: cimsxiyang [cimsxiyang] ![]() |
登录 |
哎!楼上的兄弟啊,天有不测风云啊。密码肯定被who改掉了。我自己也进不去了。 这个年头老实人被欺负。没办法~!!・##¥¥% |
B11层 发表时间: 05/03 21:18 |
![]() | 回复: top [top] ![]() |
登录 |
改夕阳密码的人真不是东西!妈的! 夕阳真是好啊! 我认真学・! |
B12层 发表时间: 05/10 17:19 |
![]() | 回复: sainthero [sainthero] ![]() |
登录 |
最近常去csdn,也混了3颗星了,不知道为什么今天晚上上不了了 真是怪了 |
B13层 发表时间: 05/23 01:13 |
![]() | 回复: Badboy [ydf] ![]() |
登录 |
我才来,看到了就想进去 但是不能进去~~~ 啊,是谁改了密码?????? |
B14层 发表时间: 05/23 18:10 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号