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,一经查实,立即删除!

相关文章

pdf 截图 java_java实现pdf文件截图的方法【附PDFRenderer.jar下载】

本文实例讲述了java实现pdf文件截图的方法。分享给大家供大家参考,具体如下:最近做的一个网站中,有个需求是上传pdf文件,显示pdf的封页,点击封页之后进行在线阅读,这里使用的是PDFRender对pdf进行截图。pub…

检查Java测试中发生了什么

有人想到了在Java单元测试中使用try和catch块的想法: Test public void test() { try { callSomeCode(); } catch (Exception e) { assertEquals( "foo" , e.getMessage()); } } 上面的内容很诱人,但不起作用 。 如果被测代码没有抛出&…

学习红客技术必备

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

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我确认我已经把…

jpa 实体映射视图_JPA教程:实体映射-第3部分

jpa 实体映射视图在上一篇文章中,我展示了两种读取/写入持久实体状态的不同方法-字段和属性。 使用字段访问模式时,JPA使用反射直接从实体的字段读取状态值。 如果我们没有明确指定列名,它将直接将字段名转换为数据库列名。 在属性访问模式下…

今晚课题:2019-3-20

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

python在材料模拟中的应用_材料模拟python_模拟-python模拟-在不妨碍实现的情况下修补方法...

此答案解决了Quuxplusone用户提供的赏金中提到的其他要求:对于我的用例而言,重要的是它可以与MagicMock一起使用,即,它不需要我在构造Potato(在此示例中为spud)实例与调用spud.foo(在本例中)之间插入任何代码。我需要293984865472…

新版本的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、工作项目数组合理使用赢在别人休息时&…

java 单例 实现_java 实现单例的各种方式

概述上一篇日志中,我们介绍了单例模式的概念和基础的应用本节中,我们就来介绍一下 java 语言中如何编写单例模式类只适合单线程环境的单例模式public class Singleton {private static Singleton instance null;private Singleton() { }public static S…

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…

java编译源文件_Java源文件编译示例

java程序编译java源文件JavacCompile文件:package yan.demo.javac;import java.io.File;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import javax.tools.Diagnostic;import javax.tools.DiagnosticCollector;import javax.tools.Fi…

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

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

facelets_不要在facelets中重复表情

facelets您是否曾经在JSF中看到过像这样的重复EL表达式&#xff1f; <h:inputText value"#{oneBean.name}" rendered"#{anotherBean.showPerson}"/> <h:inputText value"#{oneBean.birthday}" rendered"#{anotherBean.showPerson…

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

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

Servlet和JSP之间的区别

JSP和Servlet都是与使用Java构建基于Web的应用程序有关的重要概念。 基本上&#xff0c;Servlet是Java中HTML&#xff0c;而JSP是HTML中的Java。 任何典型的Web开发面试都可能有几个基于JSP和Servlet的Java面试问题 。 尽管JSP和Servlet的主要目的是相同的&#xff0c;但是两者…

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

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

java emptylist_Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方...

先说明一下好处有哪些&#xff1a;1&#xff0c;如果你想 new 一个空的 List &#xff0c;而这个 List 以后也不会再添加元素&#xff0c;那么就用 Collections.emptyList() 好了。new ArrayList() 或者 new LinkedList() 在创建的时候有会有初始大小&#xff0c;多少会占用一内…