我想用qt做一个类似网吧挂机的锁屏系统,主要功能就是定时进入挂机锁屏页面,在锁屏页面重新登录解锁继续使用一定时间,一定时间到了进入锁屏页面。有没有啥实现锁屏的思路吗,是自己做一个界面屏蔽掉一些组合键,隐藏任务管理器这些吗,登录了就隐藏这个锁屏界面,时间到了再弹出这个界面?感觉这样并不像挂机锁屏的感觉,还有如何让这个系统不出现在任务管理器里面,如果用户在任务管理里把这个进程杀了我的挂机系统不就白做了嘛。
有什么c++实现的方式或实现这个锁屏的思路吗?
用 Qt 制作锁屏系统可以通过实现自定义的锁屏界面来实现。可以在锁屏界面中屏蔽掉一些组合键,隐藏任务管理器之类的功能,并且可以设置一个登录功能,输入正确的凭据后可以解锁并隐藏锁屏界面。
要想让锁屏系统不出现在任务管理器中,可以在锁屏系统启动时将其设置为后台线程,这样在任务管理器中就看不到锁屏系统的进程了。但要注意如果锁屏系统是作为后台线程运行的,那么就不能直接通过任务管理器来结束锁屏系统的运行,可以在程序中设置一些快捷键或者其他方式来结束锁屏系统的运行。
下面是一些可以帮助实现锁屏系统的 Qt 类和函数:
QWidget::setWindowFlag() 函数可以用来隐藏任务栏中的窗口。
QWidget::setWindowModality() 函数可以用来设置窗口的模态。
QWidget::showFullScreen() 函数可以用来设置窗口全屏显示。
QThread 类可以用来创建后台线程。
QTimer 类可以用来定时执行某些操作。
仅供参考,望采纳,谢谢。
用这个函数
注意包含头文件
#include <Windows.h>
#include <Winable.h>
参数说明:
默认禁用任务管理器
填false恢复正常
即 RegDisableTaskmgr(false);
-
//禁用任务管理器
VOID RegDisableTaskmgr(DWORD dwDisable = TRUE) {
HKEY hkey;
DWORD v = dwDisable;
RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", &hkey);
RegSetValueEx(hkey, "DisableTaskMgr", NULL, REG_DWORD, (LPBYTE)&v, sizeof(DWORD));
RegCloseKey(hkey);
}
前提是程序要有有管理员权限,怎么获取参考这个:https://blog.csdn.net/cjz2005/article/details/104513305
还有它很可能会报毒
界面你应该会做吧?
还有这个
//这个函数也很有用,直接吧鼠标键盘弄无效了
BlockInput(TRUE);
//解除
BlockInput(FALSE);
窗口置顶函数:
//置顶窗口
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
//第一个参数改成窗口的句柄