windows - SetForegroundWindow 并不完全像 Alt-Tab 一样工作(我不是想窃取焦点!)
问题描述
我想像 Alt-Tab 一样将输入焦点转移到应用程序。
这是一种SetForegroundWindow
允许的情况(即我不是试图窃取焦点,触发器是另一个应用程序中的用户交互)。
特别是,如果应用程序被最小化,则应恢复该应用程序,进入前台,并将输入焦点提供给在用户切换之前之前保持输入焦点的窗口。
“激活”在应接收输入焦点的应用程序中实现。SetForegroundWindow(mainWindowOfMyApp)
如果输入焦点位于主窗口的直接子窗口上,则有效。
但是,如果焦点位于非模态弹出窗口的子窗口上,则焦点不会返回到该窗口,但仍会返回到主窗口的子窗口。
我想问题在于,使用 SetForegroundWindow 我特意说将焦点设置到此窗口,而不是...设置到在您使用选项卡离开之前具有焦点的任何窗口。
我想我可以在收到 时记住最后一个焦点窗口WM_ACTIVATEAPP (wParam==FALSE)
,并在重新激活时将焦点恢复到该窗口。这听起来不像是正确的方法,因为系统似乎已经这样做了,并且可能存在不充分或错误的情况。
有没有一种SetForegroundWindow
表现得更像 Alt-TAB 的替代方法?
解决方案
推荐阅读
- flutter - 在按下按钮两次之前状态不会更新
- python - 无论线程如何,tkinter 都会冻结
- performance - Rust 编译中最耗时的部分通常是什么?
- powershell - 如何使用下面的 Try/catch 块实际捕获无法找到的电子邮件地址?
- c++ - 运行时错误:基数为 0x000000000000 的指针索引表达式溢出到 0xffffffffffffffe8
- javascript - 如何在 Three.js 中设置 Orbit Control 的水平旋转限制
- javascript - 如何分离或提取 HTML 标签?
- python - python3中重复程序的问题
- salt-stack - 使用 saltatack 在代理后面安装软件包
- javascript - 多行信息