gpt4 book ai didi

windows-7 - VB6 应用程序出现问题,将对话框置于最前面并专注于 Windows 7

转载 作者:行者123 更新时间:2023-12-04 19:14:54 27 4
gpt4 key购买 nike

我有一个用 Visual Basic 6 编写的小型实用程序应用程序,它在 XP 客户端上愉快地运行了很多年,直到最近一个使用 Windows 7 的客户端通知并显示我的行为有所不同。

当我的 VB 应用程序显示对话框时,它会保持隐藏状态,直到用户在任务栏中单击它。

我更改了代码,而不是使用“.show vbModal”命令,而是改为以非模态方式显示表单,然后添加各种 API 调用,如BringWindowToFront 和 SetWindowPos 以使其成为最重要的,并在表单上调用 .focus,尽管有这些额外的说明,但我能实现的最佳结果是使表单闪烁,提示用户单击它。

无论我尝试过什么,我都无法在没有用户干预的情况下使窗口显示在最上面,并且具有焦点。

笔记。这是一个 ActiveX exe 项目,正在由 Win16 应用程序通过 COM 调用。

有没有其他人遇到过这种行为并知道解决方案?

任何建议/建议表示赞赏,谢谢。

最佳答案

应用程序不能(不对 Windows 撒谎)窃取焦点。调用应用程序应该真正调用 AllowSetForegroundWindow() (如果它在 win16 上可用)允许 COM 进程窃取焦点,或调用 SetForegroundWindow() 本身。

查看 SetForegroundWindow() 的帮助对于设置焦点的条件。

关于windows-7 - VB6 应用程序出现问题,将对话框置于最前面并专注于 Windows 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10832022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com