浏览器中的ShellExecute url并不总是将焦点设置在浏览器上
ShellExecute url in browser does not always set focus on browser
我在GUI应用程序(使用Win API创建)中使用ShellExecute在用户的默认浏览器中打开给定的超链接,如:
ShellExecute(0, 0, "www.stackoverflow.com", 0, 0, SW_SHOWMAXIMIZED); // Just an example
这是有效的,并且网站在默认浏览器中正确打开。
但是,我希望浏览器在启动后能够获得焦点。目前,这只在某些时候起作用:比如说,我在按钮点击回调中执行如上所示的函数。然后它按预期工作,浏览器就会聚焦。
但是,单击按钮后需要一段时间才能打开浏览器。如果我同时将焦点设置为,比如编辑控件,那么编辑控件(以及整个GUI)会在浏览器在后台打开的情况下保持焦点。但我希望行为保持一致,这样无论用户在点击按钮后的短时间内进行了什么互动,浏览器都能始终占据焦点。
如何做到这一点?
我已经尝试了ShellExecuteEx
和WaitForInputIdle
,然后从进程ID中检索主窗口句柄。但是,这并不总是有效的,因为ShellExecuteEx
并不总是返回进程ID(即使设置了SEE_MASK_NOCLOSEPROCESS
)。。。
指定"open"作为第二个参数(操作),而不是0/NULL。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- MFC:如何设置CEdit框的焦点?
- 应用程序无法找到铬边缘浏览器
- 如何从WebAssembly模块检测浏览器信息?
- 将音频从浏览器流式传输到WebRTC本机C++应用程序
- c++ 网络浏览器块 url
- 在 ubuntu 焦点上编译虚幻引擎 4.25 时出错
- 谷歌浏览器在访问网站时发送第二个 0 长度的请求?
- 如何在 wxWidgets 中从 wxTextCtrl 中删除焦点
- 每次qt窗口获得焦点时调用函数
- Qt如何在QRect上设置焦点
- 在树状视图中双击后焦点丢失
- 我的web应用程序的用户需要在浏览器上手动启用本机客户端吗
- C++检查网络浏览器是否关闭
- 使用 Cmake 闪烁浏览器引擎示例?
- 如何在嵌入式浏览器和Webside之间进行双向通信
- FLTK:窗口在 MacOS 上获得焦点时的事件
- 浏览器中的ShellExecute url并不总是将焦点设置在浏览器上
- 获取浏览器和选项卡的焦点