编辑
锁屏软件相信大家都见过,以前我去网吧上网的时候也用过这个功能,当你有事情需要立即离开,而又不想让别人碰你的电脑,就需要用扫锁屏软件啦,锁住屏幕之后等回来的时候再输入密码解锁。
同样的,今天给大家带来的是一个锁屏软件的实现,不过我们的软件比起网吧的锁屏功能可就炫酷得多啦。首先我们打开界面第一个看到的就是下面图片中显示的这样。软件有三个对话框和两个按钮,前面两个对话框是用来输入锁屏密码以及确认密码的。第三个对话框则是锁屏之后输入密码解锁的地方。当我们输入密码,并且再次输入确认密码之后,电脑就会实现锁屏的效果啦。同时鼠标的箭头也无法跳出这个软件大小的范围了。
编辑
当我们按照步骤把锁屏密码输入并确认之后,输入密码框就都被隐藏了,同时任务栏也会被隐藏,界面上显示系统已安全锁定,可以离开啦~~~
编辑
当我们把锁屏的密码输入解锁密码框之后,点击系统解锁,就会退出锁屏页面啦~~~
下面我们来看代码:
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);
}
}
由于篇幅所限,就不把全部的代码贴出来啦,大家可以点击左下角的阅读原文,去群里下载哦!!!
关注转发点个赞呗