首页 > 解决方案 > 在 Windows 10 下打开带有焦点的 MsgBox

问题描述

我无法在 Windows 10 下打开带有焦点的 MsgBox。

我使用 VBA 6(Sax ActiveX Scripting Control,© 1993-2006,Polar Engineering)为 Dragon 语音识别软件编写命令。这些“命令”是由特定口头表达触发的小程序。我已经在数百个其他计算机安装中观察到下面描述的问题。

这些命令是在 Dragon 应用程序中编写和执行的。我已经编写了数百个包含 MsgBox 函数的命令。

在 Windows XP 下,使用 MsgBox 创建的对话框可以正常工作。

但是,在 Windows 7 下,此类框不会获得焦点(不会出现在前台);相反,它们仍然“被困”在任务栏上。更改 ForegroundFlashCount 和 ForegroundLockTimeout 注册表项 (HKEY_CURRENT_USER\Control Panel\Desktop) 可以解决问题。

在 Windows 10 下,上述注册表黑客无法解决问题。

据我了解,默认情况下,Windows 7 和 Windows 10 下的 MsgBox 调用只有在从具有焦点的程序执行时才能获得焦点。但是,由于 Dragon 在后台运行,它永远没有焦点。

我注意到 MsgBox 按钮参数 vbSystemModal 将对话框强制到屏幕上,但没有焦点。因此,这并不能解决问题。vbMsgBoxSetForeground 什么都不做。

我创建的自定义对话框似乎通常被授予焦点。但是,重写数百个这样的对话框会非常耗时。

有谁知道修复/黑客或有任何建议?

标签: vbamsgbox

解决方案


推荐阅读