1

我们目前正在使用 C# 开发全屏应用程序。这是一个测验应用程序,将在学校用于评估学生。

我们目前可以将应用程序置于没有顶栏和边框的全屏状态。问题是学生仍然可以在窗口之间切换并使用 CTRL-ALT-DELETE 和 CTRL-SHIFT-ESC 等 Windows 本地命令。哦,还有 ALT-TAB。

我们想知道是否有一种方法可以阻止这些命令,而无需防病毒软件将应用程序报告为威胁。好吧,首先,如果有一种方法可以简单地阻止命令。我们怀疑它是,但你们经常想出一些惊人的解决方案来解决几乎无法解决的问题,所以我们认为无论如何我们可能会问。

感谢您的关注,希望有人能提出一些好的建议。

编辑 :

我们希望这样做,以便学生无法使用 Taskmanager 杀死该应用程序,并且他们无法打开任何其他应用程序,例如 Internet 浏览器或聊天实用程序。也许有更安全的做事方式?

4

3 回答 3

2

您实际上不能从 windows xp 和 windows 7 中的代码执行此操作。

这是通过注册表执行此操作的一种方法:保护 Windows 以用作信息亭

于 2012-06-04T04:48:00.283 回答
1

您不能将表单 TopMost 属性设置为 TRUE 并隐藏所有表单控件。所有 ctrl-alt-del 等允许您做的就是关闭进程/应用程序。如果这是您要避免的,请忽略此答案。

另一个答案是使用全局键盘挂钩:

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    private static extern IntPtr SetWindowsHookEx(int idHook,
        LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);

    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool UnhookWindowsHookEx(IntPtr hhk);

    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
        IntPtr wParam, IntPtr lParam);
于 2012-06-04T05:06:42.863 回答
1

为什么不在 asp.net 中构建您的应用程序以在浏览器中运行并通过组策略将计算机设置为“kiosk”模式?您可以通过这种方式全屏运行 IE。

于 2012-06-04T05:09:20.717 回答