我正在寻找一种以编程方式限制对工作站的访问的好方法(如果你知道的话,就像CyberCafépro那样)。 这是我做的(但它不是那么好):存在一个文件中存储的常用软件的进程列表,以及每10秒运行一次的小程序(当访问被拒绝时),该程序读取文件然后杀死列表中的每个正在运行的进程。
问题在于,通过这种方式,程序不会阻止新软件,因为它不在列表中。你只需要更改可执行文件的名称,这样程序就无法识别它,并让它运行。
那么请你帮忙一个好的方法来执行此操作,我想要的是让用户完全无法使用计算机,并使其再次可用,但我想以编程方式执行此操作。
这仅适用于Windows操作系统;我正在使用Qt编写C ++,但如果能解决我的问题,我可以处理任何其他解决方案。
答案 0 :(得分:0)
最简单的解决方案可能是打开无框架,顶部小部件全屏,并抓住键盘和鼠标(使用QWidget::grabKeyboard
和QWidget::grabMouse
)。当您检测到窗口小部件失去焦点时(由于按下Ctrl-Alt-Del并启动任务管理器),您可以在100毫秒计时器上调用qApp->setActiveWindow(this)
,直到重新获得焦点。
它是可以失败的,但更好的是需要特定于平台的代码。