|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
论坛
想学好编程,学好外语很重要 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
应用开发
>>
vb
>>
VB加密
>> 文章正文
让密码轻松显示
【字体:
小
大
】
让密码轻松显示
作者:未知 文章来源:- 点击数: 更新时间:2006-8-9
你梦想的密码显示程序是什么样子呢?不需要两个窗口之间的切换,不需要图标拖来拖去,只需要移动鼠标到密码框上,密码就会自动显示出来。真的有那么神奇吗?嗯哼,跟着我做吧。
首先,新建一个工程,然而建立一个公共模块,把以下代码贴入其中:
Declare Function SendMessage Lib “user32" Alias “SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function IsWindow Lib “user32" (ByVal hwnd As Long) As Long
Declare Function GetCursorPos Lib “user32" (lpPoint As POINTAPI) As Long
Declare Function WindowFromPoint Lib“user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Declare Function InvalidateRect Lib “user32" (ByVal hwnd As Long, lpRect As Any, ByVal bErase As Long) As Long
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Type POINTAPI
x As Long
y As Long
End Type
Public Const WM_PAINT = &HF
Public Const EM_SETPASSWORDCHAR = &HCC
Public Const WM_ERASEBKGND = &H14
你可以使用API文本查看器来助你一臂动,但一定要注意InvalidateRect函数中的lpRect参数类型应为Any,而不是Rect类型,否则……,呵呵,你试试就知道了。
接下来,在窗体上放置一个timer控件,把它的interval属性设为1000,也就是每秒一次。然后双击它,写入以下代码:
Private Sub Timer1_Timer()
Dim hwnd As Long
Dim WndIs As Long
Dim temp As Long
Dim CurrentP As POINTAPI
temp = GetCursorPos(CurrentP)
hwnd = WindowFromPoint(CurrentP.x, CurrentP.y)
WndIs = IsWindow(hwnd)
If WndIs <> 0 Then
temp = SendMessage(hwnd, EM_SETPASSWORDCHAR, 0, 0)
temp = InvalidateRect(0, 0, 1)
End If
End Sub
OK,运行它。可是,这窗体上什么也没有,那么怎样才能显示密码?别急,这个窗体没有用了,你可以最小化它,然后打开密码程序,例如“拨号网络",把鼠标移动到它的“*”上面,然后……,怎样?揉一揉眼睛,没错吧!
奥秘在哪儿呢?这个程序向你露出庞大的Windows消息系统的冰山一角,显示出一些鲜为人知的Windows系统的秘密。
众多的VB用户都知道,Windows程序是基于消息驱动的进程。每一个程序都调用了大量的外部模块,很多模块程序代码位于DLL库和ActiveX库中,各种模块通信的过程就是消息响应的过程。文本编辑控件可设置成PassWorChar属性,即成为密码框,它同样需要响应其它消息才能与其它模块进行通讯,比如,它响应——消息,你就可以利用GetWindowText函数取得它的内容(这就是上一个密码程序的原理呀)。同样,它响应EM_SETPASSWORDCHAR消息就可以把它由密码状态还原为初始状态,然后你必须再发送WM_PAINT消息来刷新它,才能完全显示出来。怎样,简单吧。抛砖引玉,你还可以发送其它消息来达到其它的效果。(重庆 唐灿)
[1]
文章录入:enadd 责任编辑:enadd
上一篇文章:
用VB实现用户登录密码的修改
下一篇文章:
如何在VB中实现密码的读取
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
用VB编写DirectX7.0游戏(下…
用VB编写DirectX7.0游戏(上…
使用OLE DB和ADO调用返回记录…
使用VB调用Oracle程序包内的…
VB中用ADO对象动态创建数据库…
fffff
如何用MSComm Control传Bina…
MultiLink的WinSock Server程…
用VB制作浏览器
用VB编写网络寻呼机
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
QQ:1656107
站长:
enadd