C++ 如何以编程方式阻止/允许访问工作站(windows)

C++ 如何以编程方式阻止/允许访问工作站(windows),c++,windows,qt,block,C++,Windows,Qt,Block,我正在寻找一种通过编程限制对工作站访问的好方法(如CyberCafépro,如果您知道的话)。 下面是我所做的(但不是很好):有一个文件中存储的常用软件的进程列表,还有一个小程序,每10秒运行一次(当访问被拒绝时),这个程序读取文件,然后杀死列表中所有正在运行的进程 问题是,通过这种方式,程序不会阻止新软件,因为它不在列表中。您只需更改可执行文件的名称,使程序无法识别它,并让它运行 所以,你能帮我找到一个好的方法来执行这个任务吗?我只想让用户完全无法使用计算机,并让它再次可用,但我想通过编程来完

我正在寻找一种通过编程限制对工作站访问的好方法(如CyberCafépro,如果您知道的话)。 下面是我所做的(但不是很好):有一个文件中存储的常用软件的进程列表,还有一个小程序,每10秒运行一次(当访问被拒绝时),这个程序读取文件,然后杀死列表中所有正在运行的进程

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

所以,你能帮我找到一个好的方法来执行这个任务吗?我只想让用户完全无法使用计算机,并让它再次可用,但我想通过编程来完成


这仅适用于windows操作系统;我用QT编程C++,但如果解决了我的问题,我可以处理任何其他的解决方案。

< P>最简单的解决方法是打开一个无框架的、顶部的小部件全屏幕,同时抓取键盘和鼠标(使用<代码> QWIDGET::GabPosiks< /Cord>和<代码> QWIDGET::GraveSts<代码>)。当您检测到小部件失去焦点时(由于按下Ctrl-Alt-Del并启动任务管理器),您可以在100ms计时器上继续调用
qApp->setActiveWindow(this)
,直到重新获得焦点


这是有可能失败的,但任何更好的方法都需要特定于平台的代码。

您可能希望在ServerFault上发布此信息,以便It专业人士以一种优雅的方式完成此操作。更详细地说:这是一个关于主题编程的问题。算了吧,“编程”这个词甚至在标题中也会出现:)@KubaOber在任何随机问题中使用“编程”这个词并不会自动成为关于编程的话题。上面的问题可能最好通过某种访问控制框架或策略执行工具来解决,而不是通过编写程序来解决-除非OP真的想重新发明其中一个轮子,这不是一项琐碎的任务…也许你说的对,这不是发布我问题的好地方,但我觉得你没有让我好起来。我想要的是一种方法来实现这一点,或者是通过一个框架或者是另一个解决方案,即使它不是真正的阻止/允许访问的东西,但是会让用户相信这一点,我还是接受它。所以,如果你有任何方法,或任何框架,或任何想法,可以帮助我,请只是提到它,我会寻找它。谢谢