gpt4 book ai didi

c++ - 撤消/重置 AllowSetForegroundWindow() 调用

转载 作者:行者123 更新时间:2023-11-30 04:28:36 25 4
gpt4 key购买 nike

有没有办法撤消对 AllowSetForegroundWindow(ASFW_ANY) 的调用?

大图:

  • 我希望一次运行我的 exe 的单个进程。
  • 为实现它,进程使用命名管道相互通信,如果进程已经存在,则必须将其窗口置于最前面。
  • 要做到这一点,最新的进程必须使用现有进程 ID 设置 AllowSetForegroundWindow()
    • 我不想获取进程 ID(抱歉我的懒惰),所以我打算做的是: 1. 使用 ASFW_ANY 调用 AllowSetForegroundWindow() 2. 以防万一发生错误,撤消对 AllowSetForegroundWindow() 的调用,这样其他人就无法从我的进程中窃取焦点。

简单来说,我想让其他进程窃取我的焦点,仅在特定时间窗口内...

有没有人之前遇到过类似的问题,并找到了解决方法?

此外,如果您有任何更好的建议/替代方案,请告诉我...

最佳答案

According to the documentation ,目标进程(大概包括“任何”)将失去从您下次调用 AllowSetForegroundWindow 时窃取焦点的能力。

换句话说,听起来您一次只能激活一个这样的权限。

因此,您应该能够通过调用一些不存在的 ID 或您自己的进程 ID 来取消权限。这是理论,但是我还没有测试过。

我个人只是通过命名管道发送目标进程 ID。

关于c++ - 撤消/重置 AllowSetForegroundWindow() 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10013624/

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