Winapi 在保持Z顺序的同时激活窗口

Winapi 在保持Z顺序的同时激活窗口,winapi,Winapi,我需要激活一个可能在其他窗口后面的窗口,但该窗口应保持在后面-它不应被带到前面。 有办法吗?我用各种参数尝试了SetWindowPos,但到目前为止没有成功 基本上,我需要关闭一个非活动窗口(通过使用SC\u close发布WM\u SYSCOMMAND),但该窗口在关闭前可能会显示一个确认对话框。如果显示该对话框,则需要将其置于前面,否则窗口应留在后面。这没有什么意义。发送WM_SYSCOMMAND并不要求它位于前台。如果它确实在前景中移动,那么它不会在那里停留太久,你正在关闭它。不一致地执行

我需要激活一个可能在其他窗口后面的窗口,但该窗口应保持在后面-它不应被带到前面。 有办法吗?我用各种参数尝试了
SetWindowPos
,但到目前为止没有成功


基本上,我需要关闭一个非活动窗口(通过使用
SC\u close
发布
WM\u SYSCOMMAND
),但该窗口在关闭前可能会显示一个确认对话框。如果显示该对话框,则需要将其置于前面,否则窗口应留在后面。

这没有什么意义。发送WM_SYSCOMMAND并不要求它位于前台。如果它确实在前景中移动,那么它不会在那里停留太久,你正在关闭它。不一致地执行此操作没有意义,setForeGroundIndow()。请注意,如果窗口属于另一个进程,这可能不起作用,您可能会看到一个闪烁的任务栏按钮。如果它确实在前台移动,那么它就不会在那里或很长时间,您将关闭它。这就是问题的一部分:如果我把它带到前台,它不会显示额外的对话框,它会“闪烁”——出现和消失。这是不可取的。好吧,发送WM_SYSCOMMAND,如果它在一两秒钟后仍然存在,那么就把它放在前台?这会起作用的,但如果可能的话,我宁愿避免延迟。