我正在尝试使用VB.net
创建一个应用程序,一旦出现某种情况(在这种情况下,将创建一个文件),该应用程序就会出现在最前面。我已经尝试了以下代码,但这只是导致任务栏按钮在Windows 7
上闪烁:
Me.Activate()
我了解原因,也完全理解为什么人们不希望任何随机应用窃取焦点(我也很讨厌)。这是一个使用极其有限的应用程序(实际上只有3台计算机会使用它),在这种情况下,用户希望该应用程序弹出在前面(也可以选择将其关闭)。
任何想法,如果仍然可以在
Windows 7
上做呢? 最佳答案
最简单的方法是在三台计算机上更改ForegroundLockTimeout注册表项。这将禁用Windows规则,该规则可防止后台应用程序窃取焦点。显然,它将允许系统上的所有应用程序抢占先机。
您也可以使用 SystemParametersInfo
和SPI_SETFOREGROUNDLOCKTIMEOUT
通过代码禁用规则。例如,请参见here