如何以编程方式阻止/允许访问工作站(窗口)

时间:2014-02-04 17:29:16

标签: c++ windows qt block

我正在寻找一种以编程方式限制对工作站的访问的好方法(如果你知道的话,就像Cyber​​Cafépro那样)。 这是我做的(但它不是那么好):存在一个文件中存储的常用软件的进程列表,以及每10秒运行一次的小程序(当访问被拒绝时),该程序读取文件然后杀死列表中的每个正在运行的进程。

问题在于,通过这种方式,程序不会阻止新软件,因为它不在列表中。你只需要更改可执行文件的名称,这样程序就无法识别它,并让它运行。

那么请你帮忙一个好的方法来执行此操作,我想要的是让用户完全无法使用计算机,并使其再次可用,但我想以编程方式执行此操作。

这仅适用于Windows操作系统;我正在使用Qt编写C ++,但如果能解决我的问题,我可以处理任何其他解决方案。

1 个答案:

答案 0 :(得分:0)

最简单的解决方案可能是打开无框架,顶部小部件全屏,并抓住键盘和鼠标(使用QWidget::grabKeyboardQWidget::grabMouse)。当您检测到窗口小部件失去焦点时(由于按下Ctrl-Alt-Del并启动任务管理器),您可以在100毫秒计时器上调用qApp->setActiveWindow(this),直到重新获得焦点。

它是可以失败的,但更好的是需要特定于平台的代码。