AllowSetForegroundWindow 函数 (winuser.h)

允许指定进程使用 SetForegroundWindow 函数设置前台窗口。 调用过程必须已经能够设置前台窗口。 有关详细信息,请参阅本主题后面的备注。

Syntax

BOOL AllowSetForegroundWindow(
  [in] DWORD dwProcessId
);

参数

[in] dwProcessId

类型:DWORD

将启用以设置前台窗口的进程标识符。 如果此参数 ASFW_ANY,则会启用所有进程来设置前台窗口。

返回值

类型: BOOL

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 如果调用进程无法设置前台窗口,该函数将失败。 若要获取扩展的错误信息,请调用 GetLastError

注解

系统限制哪些进程可以设置前台窗口。 通常,仅当以下情况时,进程才能通过调用 SetForegroundWindow 函数来设置前台窗口:

  • 以下所有条件均为 true:
    • 调用过程属于桌面应用程序,而不是针对 Windows 8 或 8.1 设计的 UWP 应用或 Windows 应用商店应用。
    • 前台进程尚未通过对 LockSetForegroundWindow 函数的上一次调用来禁用对 SetForegroundWindow 的调用。
    • 没有处于活动状态的菜单。
  • 此外,至少满足以下条件之一:
    • 前台锁定超时已过期(请参阅 SystemParametersInfo 中的SPI_GETFOREGROUNDLOCKTIMEOUT)。
    • 调用进程是前台进程。
    • 调用进程由前台进程启动。
    • 当前没有前台窗口,因此没有前台进程。
    • 调用进程收到最后一个输入事件。
    • 正在调试前台进程或调用进程。

可以设置前台窗口的进程可以通过调用 AllowSetForegroundWindow 来启用另一个进程来设置前台窗口。 dwProcessId 参数指定的进程将失去在用户下次生成输入时设置前台窗口的能力,除非输入定向到该进程,否则下次进程调用 AllowSetForegroundWindow 时,除非在上一次对 AllowSetForegroundWindow 的调用中指定了相同的进程。

要求

Requirement 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows操作系统
Header winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-window-l1-1-0(在 Windows 8 中引入)

另请参阅

概念

LockSetForegroundWindow

引用

SetForegroundWindow

Windows操作系统