windows - 如何让 VB.net 2008 应用程序窃取 Windows 7 上的焦点?

标签 windows vb.net focus

我正在尝试在 VB.net 中创建一个应用程序,一旦出现特定条件(在本例中为正在创建的文件),它就会出现在前面。我尝试了以下代码,但它只会导致任务栏按钮在 Windows 7 上闪烁:

Me.Activate()

我理解这样做的原因,我完全理解为什么人们不希望任何随机应用程序窃取焦点(我也讨厌它)。这是一个用途极为有限的应用程序(实际上只有 3 台计算机会使用它),在这种情况下,用户会希望该应用程序在前面弹出(也可以选择将其关闭)。

如果这仍然可以在 Windows 7 上执行,您有什么想法吗?

最佳答案

最简单的方法是更改​​ ForegroundLockTimeout三台计算机上的注册表项。这将禁用防止后台应用程序窃取焦点的 Windows 规则。显然,它将允许系统上的所有 应用程序窃取焦点。

您还可以使用 SystemParametersInfo 通过代码禁用规则使用 SPI_SETFOREGROUNDLOCKTIMEOUT 例如参见 here

关于windows - 如何让 VB.net 2008 应用程序窃取 Windows 7 上的焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933034/

相关文章:

mysql - 数据插入sql vb.net

VB.NET从可为空的类型获取基础的system.type

WPF 验证不会在 TextBox 的第一个 LostFocus 上触发

.net - 基于 Entity Framework 的应用程序的 SQL Server 进程过多

javascript - 将焦点设置到下一个输入

android - ScrollView 在滚动时窃取焦点

windows - 如何在 Windows 10 中安装 NASM?

windows - 如何防止 IIS 7.5 缓存符号链接(symbolic link)内容?

windows - 在 Windows 上使用 CMD 从文件目录中删除特定子字符串

c# - 将列表框的选定项目传递到 xaml