admin管理员组文章数量:1568433
2024年3月23日发(作者:)
星号密码查看工具大家都用过吧,现在我们自己来写个超级简单的。其实密码框是一
个Windows的一个子窗口,显示星号是因为密码框设置了EM_SETPASSWORDCHAR属
性,只要我们把密码框的EM_SETPASSWORDCHAR属性给去掉那么密码就会以明文显示
了,我们可以给程序发送消息去掉EM_SETPASSWORDCHAR属性。通过安装鼠标钩子监
视鼠标动作,如果用户单击的是密码框那么就发送一个去除密码属性的消息。
本文使用的编程工具为VC6.0,具体实现步骤和代码如下:
1.生成一个基于对话框的程序pass。打开,加入下面的全局变量和鼠标
钩子函数。
HHOOK g_hHook = NULL;//全局钩子函数句柄
//鼠标钩子函数
LRESULT CALLBACK HookProc( int code, WPARAM wParam,LPARAM lParam )
{
HWND hwnd;
POINT point;
GetCursorPos(&point);//得到鼠标位置
hwnd=::WindowFromPoint(point);//得到包含鼠标的窗口句柄
long nStyle=::GetWindowLong(hwnd,GWL_STYLE);// 得到窗口风格
文/德州科技职业学院 冷风
EVENTMSG *event=(EVENTMSG *)lParam;
if(event->message==WM_LBUTTONDOWN)//是否为鼠标左键
{
if(nStyle & ES_PASSWORD)//是否为密码框
{
::PostMessage(hwnd, EM_SETPASSWORDCHAR,0,0);//去掉密码属性
}
}
return CallNextHookEx(g_hHook,code,wParam,lParam);
}
需要注意的是,程序中::PostMessage(hwnd, EM_SETPASSWORDCHAR,0,0);
版权声明:本文标题:浏览器密码去星号 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1711198588a304646.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论