有没有办法撤销对AllowSetForegroundWindow(ASFW_ANY)
的调用?撤消/重置AllowSetForegroundWindow()调用
的大图:
- 我希望我的exe文件的同时运行一个进程。
- 为了实现这个目标,如果一个进程已经存在,那么这个进程就会使用命名管道&相互通信,它的窗口必须放在前面。
- 为了能够做到这一点,最新的过程必须设置
AllowSetForegroundWindow()
与现有的进程ID。- 我不想获取进程ID(对不起我的懒惰),所以我打算做的是:1.用ASFW_ANY拨打
AllowSetForegroundWindow()
2.为防万一发生错误,请撤消拨打AllowSetForegroundWindow()
这样别人就不能从我的过程中窃取焦点。
- 我不想获取进程ID(对不起我的懒惰),所以我打算做的是:1.用ASFW_ANY拨打
在简单的话,我想允许其它进程从我偷的焦点,仅在特定的时间窗口...
任何一个面临着类似的问题早,发现什么解决办法?
另外,请让我知道如果您有任何更好的建议/替代...
你可以完全摆脱'AllowSetForegroundWindow'调用。当现有流程需要关注时,它会询问最新流程。如果没有请求进入,那么最新的进程什么也不做。 – 2012-04-04 19:28:09
@RaymondChen我没有得到它......如果有请求进入,最新进程应该做什么? – 2012-04-05 05:11:44
你说这两个进程(称它们为A和B)已经彼此通信,并且你有A调用'AllowSetForegroundWindow',以防B想调用'SetForegroundWindow'。相反,只需让B告诉A,“请在此窗口上为我调用'SetForegroundWindow'。” – 2012-04-05 08:07:38