Java 禁用在Linux和Windows中运行程序
我正在用Java[Swing]构建一个计算机自适应测试,并希望在测试完成(或用户退出)之前禁止在后台运行其他程序。这是为了防止考生在考试中作弊 我的问题是,怎么做?如何停止创建新任务或阻止用户与其他程序交互 在问这个问题之前,我的家庭作业是: 1.我可以在windows上使用JNI并调用setForeGroundIndow(HWND)函数。它在Linux中的等价物是什么Java 禁用在Linux和Windows中运行程序,java,linux,winapi,java-native-interface,hook,Java,Linux,Winapi,Java Native Interface,Hook,我正在用Java[Swing]构建一个计算机自适应测试,并希望在测试完成(或用户退出)之前禁止在后台运行其他程序。这是为了防止考生在考试中作弊 我的问题是,怎么做?如何停止创建新任务或阻止用户与其他程序交互 在问这个问题之前,我的家庭作业是: 1.我可以在windows上使用JNI并调用setForeGroundIndow(HWND)函数。它在Linux中的等价物是什么 使用带有全局低级键盘挂钩程序的SetWindowsHookEx()函数完全禁用键盘。Linux中的等价物 如果之前已回答此问题
如果之前已回答此问题,请道歉--如何停止创建新任务或阻止用户与其他程序交互 操作系统不允许使用上述语句,我认为您应该优雅地警告用户不要启动新任务,不要与现有任务交互
但是,如果你坚持,你应该考虑写一些密码,比如密码保护的屏幕保护程序,当然不要求密码。
< P>当我不知道如何阻止某人改变焦点时,你可以跟踪和检测你的GUI何时失去焦点。你甚至可以做一些计时测量,比如说5秒可以,但30秒不行 在Windows上,您可以使用另一个(与Windows Vista和7 UAC提示符默认使用的相同)这允许您运行您的进程,而无需(对于用户)与桌面的其他部分交互,但要非常小心,确保在退出之前切换回,否则它们将被卡住。嗯,我想我找到了解决方法:(我应该以更简单的方式考虑) 我可以将WindowFocusListener应用到我的框架中,如果有人作弊,就会发出警报并提醒监视器
谢谢大家。:-) 但是考生仍然可以使用其他设备(智能手机、平板电脑)来作弊,而不是他们通过考试的电脑,不是吗?手机/平板电脑/智能手机是不允许进入实验室的:-)。只是我们没有让烫发机在实验室安装摄像头:-(只有两个“监视器”监控测试。如果没有本机库,Java代码无法通过阻止系统事件的方式直接访问系统事件。JVM从系统获取事件,然后代码获取事件。因此,您的代码无法禁用键盘的使用。在Linux上,您可以在后台枚举正在运行的进程,并发出kill-9 command使用processbuilder向他们提问。对于Linux和Windows,可能值得将其分成不同的问题,因为他们会有非常不同的答案。我同意这不应该允许(很容易对用户造成滋扰)。我在Alienware商店看到过类似的程序,它们展示了计算机的功能,但不允许任务切换(alt+tab被禁用,诸如此类)。我希望实现与此完全相同的功能。