CJ7*_*CJ7 3 registry foreground windows-7
如果应用程序调用并激活另一个应用程序,则可能存在未将调用的应用程序带到前台的问题.
一种解决方法是将HKCU\Control Panel\Desktop\ForegroundLockTimeout注册表值设置为0而不是默认的200000毫秒数.
应用程序应如何控制此注册表值?是否可以暂时更改它以实现解决方案然后将其更改回来?
动态破解注册表永远不是一个可接受的解决方法.如果应用程序拥有前台窗口,则激活另一个应用程序的窗口不会有任何问题.它可以使用AllowSetForegroundWindow() winapi函数显式完成.链接的MSDN页面还列出了确切的规则.还有助于找到SystemParameterInfo函数的SPI_SETFOREGROUNDLOCKTIMEOUT参数.
有一个肮脏的无证件黑客破坏规则.除了提到它实际上是在.NET框架中使用之外,我不会详细介绍它.由于您的大多数问题都是.NET问题,我认为它适用,您可以使用Microsoft.VisualBasic.Interaction.AppActivate()方法.不是那么容易使用顺便说一句.
请记住,用户绝对讨厌这种黑客攻击.确保卸载程序是正确的.