应用程序应该如何使用ForegroundLockTimeout注册表值?

CJ7*_*CJ7 3 registry foreground windows-7

如果应用程序调用并激活另一个应用程序,则可能存在未将调用的应用程序带到前台的问题.

一种解决方法是将HKCU\Control Panel\Desktop\ForegroundLockTimeout注册表值设置为0而不是默认的200000毫秒数.

应用程序应如何控制此注册表值?是否可以暂时更改它以实现解决方案然后将其更改回来?

Han*_*ant 5

动态破解注册表永远不是一个可接受的解决方法.如果应用程序拥有前台窗口,则激活另一个应用程序的窗口不会有任何问题.它可以使用AllowSetForegroundWindow() winapi函数显式完成.链接的MSDN页面还列出了确切的规则.还有助于找到SystemParameterInfo函数的SPI_SETFOREGROUNDLOCKTIMEOUT参数.

有一个肮脏的无证件黑客破坏规则.除了提到它实际上是在.NET框架中使用之外,我不会详细介绍它.由于您的大多数问题都是.NET问题,我认为它适用,您可以使用Microsoft.VisualBasic.Interaction.AppActivate()方法.不是那么容易使用顺便说一句.

请记住,用户绝对讨厌这种黑客攻击.确保卸载程序是正确的.

  • 一些详细信息[此处](http://www.drdobbs.com/windows/launching-apps-in-the-foreground/184405755)。 (2认同)