2011-09-15 77 views
14

我有一个用C++编写的Windows 7的自制全屏应用程序,它应该作为公共演示文稿自行运行很长时间。Windows 7:防止应用程序失去焦点

问题是,有几个应用程序或驱动程序或Windows本身,不时偷偷关注和/或尤其是在系统启动时。 结果是:我的全屏应用程序被最小化。

这是非常烦人的,几乎不可能总是找出你必须停用哪些东西来防止这种情况。特别是因为有时需要那些焦点偷东西,例如触摸屏驱动程序。

我能做些什么来防止失去焦点?

甚至更​​好:我怎样才能防止其他应用程序窃取焦点 - 我记得曾经在Windows XP的TweakUI中有过这样的设置。

回答

20

调整UI通过更改SPI_SETFOREGROUNDLOCKTIMEOUT来实现。您可以将其与LockSetForegroundWindow结合使用。

+1

一个很好的答案,但不幸的是它并没有解决我的问题。我认为这个问题不是一个应用程序试图设置一个已经存在的窗口到Windows 7的默认情况下阻止的forground我猜。但它是通过shellexec或其他东西创建一个临时窗口的东西。从驱动程序或自动更新程序或其他任何恶意计划的后台进程。不好的一点是我没有简单的方法访问播放器电脑:-( –

+3

LockSetForegroundWindow应该阻止该场景。但是,请注意,当用户按下Alt或单击另一个窗口时,通过LockSetForegroundWindow设置的锁定会被清除,因此您必须请注意它 –

+0

你的解决方案有效SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT ...)犯了一个错误,因为我没有意识到你必须通过指针参数值传递值,虽然有一个整数参数(这很奇怪,当然) –

相关问题