论坛: 编程破解 标题: 显示密码框中的密码 复制本贴地址    
作者: 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号