自助服务终端模式下的WPF – 任务栏问题

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

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

有人能指出我需要实施这种行为的方向吗?

附加信息
不幸的是,这个项目的本质是我们不能改变客户机,它们运行的​​是XP,Vista和Win7。 PC不归我们所有,但用于以尽可能安全的方式传送内容。 PC的所有者知道运行软件的限制,并且很高兴他们在执行我们的应用程序时被“锁定”,但是不能以其他方式改变它们。

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

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

他有几篇博客文章描述了他制作应用程序的工作。 它在自助服务终端模式下具有婴儿安全应用程序。

您可以在Codeplex上找到该项目