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

时间:2009-11-27 12:32:45

标签: c# wpf kiosk

我正在尝试构建一个需要在运行时锁定对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!

1 个答案:

答案 0 :(得分:4)

看看Scott Hanselman的BabySmash。您可以在BabySmash

找到该网站

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

您可以在Codeplex

上找到该项目