4

我正在尝试构建一个需要在运行时锁定对 PC 的访问的应用程序。我需要让应用程序以全屏模式运行在最顶层,并确保 alt-tabbing 不允许访问其他应用程序或任务栏。

到目前为止,我已经设置了 TopMost = true、WindowStyle = WindowStyle.None 和 WindowState = WindowState.Maximized,它们实现了我需要的大部分功能,但我仍然得到任务栏变得可见的实例。我试图在窗口上实现 LostFocus 行为,但这似乎并没有给我我需要的行为。

谁能指出我需要实施这种行为的方向,好吗?

附加信息
不幸的是,这个项目的性质是我们无法改变客户端机器,它们运行的​​是 XP、Vista 和 Win7 的混合。PC 不归我们所有,但用于以尽可能安全的方式交付内容。PC 的所有者知道运行该软件的限制,并且很高兴在我们的应用程序执行期间它们被“锁定”,但不能以其他方式更改它们。

其他方式
HakonB提到了 Scott Hanselman 的 BabySmash 应用程序,所以我去找他处理这种情况的方法。正如 HakonB 所说,这不是处理失去焦点的最干净的方法,但它似乎有效,或者至少在我找到更好的解决方案之前应该这样做。他使用每秒触发的计时器,并触发对 user32.dll 的 SetForegroundWindow(IntPtr hWnd) 方法的调用以获取焦点,无论它是否具有焦点。感谢您的提醒,HakonB!

4

1 回答 1

4

看看 Scott Hanselman 的 BabySmash。您可以在BabySmash上找到该网站

他有几篇博客文章描述了他在制作申请时所做的工作。它在信息亭模式下具有婴儿安全应用程序。

您可以在Codeplex上找到该项目

于 2009-11-27T12:39:05.467 回答