MFC实现Windows锁屏

640?wx_fmt=jpeg

编辑


Windows锁屏

        锁屏软件相信大家都见过,以前我去网吧上网的时候也用过这个功能,当你有事情需要立即离开,而又不想让别人碰你的电脑,就需要用扫锁屏软件啦,锁住屏幕之后等回来的时候再输入密码解锁。

        同样的,今天给大家带来的是一个锁屏软件的实现,不过我们的软件比起网吧的锁屏功能可就炫酷得多啦。首先我们打开界面第一个看到的就是下面图片中显示的这样。软件有三个对话框和两个按钮,前面两个对话框是用来输入锁屏密码以及确认密码的。第三个对话框则是锁屏之后输入密码解锁的地方。当我们输入密码,并且再次输入确认密码之后,电脑就会实现锁屏的效果啦。同时鼠标的箭头也无法跳出这个软件大小的范围了。

640?wx_fmt=png

编辑


Windows锁屏软件

        当我们按照步骤把锁屏密码输入并确认之后,输入密码框就都被隐藏了,同时任务栏也会被隐藏,界面上显示系统已安全锁定,可以离开啦~~~

640?wx_fmt=png

编辑


锁屏中

当我们把锁屏的密码输入解锁密码框之后,点击系统解锁,就会退出锁屏页面啦~~~

下面我们来看代码:

void CSystemLockDemoDlg::OnBnClickedSetlock()

{

// TODO:  在此添加控件通知处理程序代码

if (user == 0)

{

GetDlgItemText(IDC_SET, PASSWORD1);

GetDlgItemText(IDC_SETAGAIN, PASSWORD2);

if (PASSWORD1 != PASSWORD2)

{

SetDlgItemText(IDC_MESSAGE, "系统锁定密码两次不一致\n请重新输入锁定密码.");

SetDlgItemText(IDC_SET, "");

SetDlgItemText(IDC_SETAGAIN, "");

GetDlgItem(IDC_SET)->SetFocus();

return;

}

if (PASSWORD1 == "")

{

SetDlgItemText(IDC_MESSAGE, "系统锁定密码不能为空\n处于安全考虑请重新设置!");

GetDlgItem(IDC_SET)->SetFocus();

return;

}

SetDlgItemText(IDC_MESSAGE, "系统已安全锁定中......\n可以安全离开...");


SendDlgItemMessage(IDC_SET, EM_SETREADONLY, 1);

SendDlgItemMessage(IDC_SETAGAIN, EM_SETREADONLY, 1);

SendDlgItemMessage(IDC_UNLOCK, EM_SETREADONLY, 0);

SetDlgItemText(ID_SETLOCK, "系统解锁");

SetDlgItemText(IDC_SET, "");

SetDlgItemText(IDC_SETAGAIN, "");

GetDlgItem(ID_QUIT)->EnableWindow(false);

user = 1;


CRect rct;

GetWindowRect(rct);

ClipCursor(rct);

SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, true, 0, SPIF_UPDATEINIFILE);

::ShowWindow(::FindWindow("Shell_TrayWnd", NULL), SW_HIDE);


GetDlgItem(IDC_UNLOCK)->SetFocus();


return;

}

if (user == 1)

{

GetDlgItemText(IDC_UNLOCK, PASSWORD3);

if (PASSWORD1 != PASSWORD3)

{

SetDlgItemText(IDC_MESSAGE, "系统解锁密码错误\n你无权使用此系统!");

SetDlgItemText(IDC_UNLOCK, "");

GetDlgItem(IDC_UNLOCK)->SetFocus();

return;

}

SetDlgItemText(IDC_MESSAGE, "已经成功解锁操作......");


SendDlgItemMessage(IDC_SET, EM_SETREADONLY, 0);

SendDlgItemMessage(IDC_SETAGAIN, EM_SETREADONLY, 0);

SendDlgItemMessage(IDC_UNLOCK, EM_SETREADONLY, 1);

SetDlgItemText(ID_SETLOCK, "系统加锁");

SetDlgItemText(IDC_UNLOCK, "");

GetDlgItem(ID_QUIT)->EnableWindow(true);

user = 0;


ClipCursor(NULL);

SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, false, 0, SPIF_UPDATEINIFILE);

::ShowWindow(::FindWindow("Shell_TrayWnd", NULL), SW_SHOW);

}

}

        由于篇幅所限,就不把全部的代码贴出来啦,大家可以点击左下角的阅读原文,去群里下载哦!!!

640?wx_fmt=jpeg

关注转发点个赞呗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习红客技术必备

互联网时代已悄悄来临,作为新时代的人们,我们日常生活、工作、学习方面都需要借助互联网来完成,这样,又产生一种新的问题,那就是网络安全的问题,有时我们拼命加班好不容易完成的东西,在一夜之间…

md5withrsa java_浏览器运行java插件报错:Algorithm constraints check failed: MD5withRSA

今天使用kvm管理机房机器的时候发现一只连不上,报以下错误:sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Algorithm constraints check failed: MD5withRSA我确认我已经把…

今晚课题:2019-3-20

今晚课题C/C万年历技术实现原理上课时间:20:30--22:30上课老师:杰越教育-Larry老师上课地址:https://ke.qq.com/course/353889 课程内容:1、C/Cfor逻辑原理2、重要点数据结构分析3、万年历效果实现展示赢在别人休息时,…

新版本的Selenium 4 Alpha会有什么期望?

我们所有人都属于测试领域,他们熟悉Selenium,Selenium是业界最流行的开源自动化工具之一。 Selenium的创始成员Simon Stewart在2018年8月正式宣布Selenium 4的发布日期以及它将为用户带来哪些新功能时,我们感到非常兴奋。 与Selenium 3一样&…

今晚课题:2019-3-22

今晚课题数据结构必会重点集合上课时间:20:30--22:30上课老师:杰越教育-Larry老师上课地址:https://ke.qq.com/course/353889 课程内容:1、C/C技术工作运用2、数据结构重点数组定义特点3、工作项目数组合理使用赢在别人休息时&…

Drools DMN最新开源引擎性能改进

我们一直在寻求改善Drools DMN开源引擎的性能。 我们最近审查了DMN用例,其中输入数据节点的实际输入总体有所不同。 这突出显示了引擎的次佳性能,我们在最新版本中对此进行了改进。 我想分享我们的发现! 基准制定 当我们开始为该用例运行一个…

今晚课题:2019-3-23

今晚课题剖析《服务器高并发-IOCP模型架构》上课时间:2019/03/23 20:30--22:30授课讲师:杰越教育C/C学院--Vico课程链接:https://ke.qq.com/course/353889?tuin7472c9c 课程内容: 1、C/C编程语言入门精通 2、C线程技术在服务器…

使用Selenium WebDriver测试自动化的22条实用技巧

使用Selenium进行测试自动化已使全球的网站测试人员能够轻松执行自动化的网站测试。 Webdriver是Selenium框架的核心组件,通过它您可以针对不同类型的浏览器(例如Google Chrome,Mozilla Firefox,Safari,Opera&#xff…

这么奇葩搞笑的代码注释你见过吗

程序员作为一种“异类”,虽然他们平时给人们的留下的印象并不太好,觉得他们只会写代码。但是有的时候不得不佩服他们天马行空的想象力,他们可能会利用注释让你噗嗤一笑,下面我们来看看那些奇葩搞笑的代码注释吧。注释1&#xff1a…

C语言与Java的深情对话:儿子,还得多练几年啊!老子还是老子

很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门纠结,如果你还在苦恼怎么入门!小编有个建议,可以…

BAT人脸识别功能第二步-人脸检测

今晚课题点击【阅读原文】或长按图片【识别图中的二维码】即可参加今晚的课程。

java中插入排序实例_java中对插入排序的理解以及实例

一、基本思想通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌&a…

经典游戏底层框架--迷宫游戏构成原理剖析

今晚课题点击【阅读原文】或长按图片【识别图中的二维码】即可参加今晚的课程。

突破100万年薪《多线程服务器端架构》

今晚课题点击【阅读原文】或长按图片【识别图中的二维码】即可参加今晚的课程。

Java中的观察者设计模式

在本教程中,我们将讨论Observer设计模式。 观察者模式有两个主要方面- 主题和观察者 。 当我们的系统有多个对象(称为观察者)时 ,将使用一个模式,该对象依赖于一个特定对象( 主体)的状态 。 所…

java class api 中文乱码_SpringMVC之springmvc原始api,请求中文乱码问题

先搞一波效果图1.Controllerpackage com.tz.controller;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.springframework.beans.factory.annotation.Required;import org.springframe…

从流水线工人,到谷歌上班的程序媛

非科班、转行当程序员的励志故事有很多,我们在 8 年前扩散分享过一个国外的故事:我来自于一个东欧国家。我在一个煤矿里工作了很多年(在一个很深的矿井里)。每天我都处在危险中,那些年都是这样度过的。后来我感觉过够了…

jsp中的java部分_jsp页面的七个组成部分

jsp页面的七个组成部分1. 静态内容:前端内容一行一行翻译成 out.write(“前端内容”);2. 指令: 第一个指令是pagepage指令的第一个标准用法,告诉servlet容器,这是一个jsp页面pageEncoding 指…

java多线程做一件事_关于Java的十件事

java多线程做一件事那么,您从一开始就一直在使用Java? 还记得那些被称为“ Oak”的日子,OO仍然是热门话题,C 人士认为Java没有机会,Applet还是一件事吗? 我敢打赌,您至少不了解以下一半内容。 …

打造大型直播平台之《PC客户端架构》

今晚课题点击【阅读原文】或长按图片【识别图中的二维码】即可参加今晚的课程。