我正在尝试构建一个应用程序,它需要在PC运行时锁定对PC的访问。我需要让应用程序以全屏模式运行在最上面,并确保alt-tabbing不允许访问其他应用程序或任务栏。
到目前为止,我已经设置了topmost=true,windowstyle=windowstyle.none和windowstate=windowstate.maximized,这可以实现我所需要的大部分功能,但我仍然得到任务栏可见的实例。我已经尝试在窗口上实现LostFocus行为,但这似乎并不能提供我需要的行为。
有人能指出我需要实现这一行为的方向吗?
附加信息
不幸的是,这个项目的性质是这样的,我们不能改变客户机,他们运行的是XP、Vista和Win7的混合。PC不属于我们,但将以尽可能安全的方式用于交付内容。PC机的所有者知道运行软件的限制,并很高兴在我们的应用程序执行期间将其“锁定”,但不能更改。
其他方式
HakonB
提到了斯科特·汉塞尔曼的婴儿粉碎应用程序,所以我去找他处理情况的方法。正如Hakonb所说,这不是处理丢失焦点的最干净的方法,但它似乎有效,或者至少应该在我找到更好的解决方案之前这样做。他使用一个计时器每秒触发一次,并调用user32.dll的setForegroundWindow(intptr hwnd)方法获取焦点,而不管它是否有焦点。谢谢你的提醒,哈康布!