MFC实现Windows锁屏

Windows锁屏

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

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

Windows锁屏软件

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

锁屏中

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

下面我们来看代码:

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_fmt=jpeg

关注转发点个赞呗

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年11月2日
下一篇 2018年11月2日

相关推荐