gpt4 book ai didi

c++ - 使用 ShellExecute 打开 URL - C++ 中的 SW_SHOW MAXIMIZED 非事件窗口

转载 作者:太空狗 更新时间:2023-10-29 21:45:53 29 4
gpt4 key购买 nike

我使用这个函数在 Chrome 中打开新标签并激活它:

ShellExecuteA(0,0,"chrome.exe","http://google.com  --incognito",0,SW_SHOWMAXIMIZED);

但 Chrome 只打开新标签页,但不会激活窗口。
(如果用户按下指定的键,我从没有用户界面的应用程序的全局键盘 Hook 调用此函数)。

我该如何解决?

最佳答案

看起来像是 chrome.exe 中的错误。如果常规(非隐身)chrome.exe session 正在运行并且没有隐身 session 正在运行,我可以从一个简单的控制台应用程序使用您的 ShellExecute 调用进行重现。换句话说,如果需要生成新的隐身 chrome session ,则常规 session 似乎无法将 ShowWindow 标志正确传播到生成的隐身进程。另一个因素是激活失败还需要在测试应用程序运行之前激活常规 chrome session 。如果任何其他应用程序处于事件状态(例如 notepad.exe),则隐身 session 激活成功。 ShellExecuteExCreateProcess 也会出现相同的行为。在 Process Explorer(来自 sysinternals)中观察,很明显 chrome.exe 在必要时 fork 子进程,然后自行终止。这使得拦截 hProcess 或 processId 以最终调用 SetActiveWindow 变得困难。

关于c++ - 使用 ShellExecute 打开 URL - C++ 中的 SW_SHOW MAXIMIZED 非事件窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16558816/

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