小编MXY*_*MXY的帖子

在什么条件下允许进程使用 Win32 函数 SetForegroundWindow 设置前景窗口?

我想了解进程在什么条件下可以使用 Win32 函数设置前台窗口SetForegroundWindow。我尝试阅读它的文档,它在“备注”下说:

仅当满足以下条件之一时,进程才能设置前台窗口:

  • 该进程是前台进程。
  • 该进程是由前台进程启动的。
  • 该进程接收到最后一个输入事件。
  • 没有前台进程。
  • 进程正在调试中。
  • 前台进程不是现代应用程序或开始屏幕。
  • 前景未锁定(请参阅LockSetForegroundWindow)。
  • 前台锁定超时已过期(请参见SPI_GETFOREGROUNDLOCKTIMEOUT)SystemParametersInfo。
  • 没有菜单处于活动状态。

在我看来,这不可能准确,因为这意味着所有这些项目符号都必须为假才能限制设置前景窗口,但最后四个似乎通常是正确的(取决于您对“现代”应用程序的使用) )。正如所写的,设置前景窗口几乎永远不会受到限制。然而从实验来看,在另一个进程的窗口中激活菜单似乎足以阻止设置前台窗口,即使例如前台进程不是现代应用程序(条件 6 为真)。

当进程可以根据列出的条件设置前台窗口时,更准确的表达方式是什么?

winapi

5
推荐指数
1
解决办法
549
查看次数

标签 统计

winapi ×1