AllowSetForegroundWindow 函式 (winuser.h)

啟用指定的進程,以使用 SetForegroundWindow 函式來設定前景視窗。 呼叫進程必須已經能夠設定前景視窗。 如需詳細資訊,請參閱這個主題稍後的「備註」一節。

語法

BOOL AllowSetForegroundWindow(
  [in] DWORD dwProcessId
);

參數

[in] dwProcessId

類型: DWORD

將啟用以設定前景視窗之進程的標識碼。 如果此參數 ASFW_ANY,則會啟用所有進程來設定前景視窗。

傳回值

類型: BOOL

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 如果呼叫進程無法設定前景視窗,函式將會失敗。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

系統會限制哪些進程可以設定前景視窗。 一般而言,只有當下列狀況時,進程才能呼叫 SetForegroundWindow 函式來設定前景視窗:

  • 下列所有條件都成立:
    • 呼叫程式屬於傳統型應用程式,而不是專為 Windows 8 或 8.1 設計的 UWP 應用程式或 Windows 市集應用程式。
    • 前景進程尚未停用對 SetForegroundWindow 的呼叫,前一次呼叫 LockSetForegroundWindow 函式。
    • 前景鎖定逾時已過期, (請參閱 SystemParametersInfo) 中的SPI_GETFOREGROUNDLOCKTIMEOUT。
    • 沒有作用中的功能表。
  • 此外,下列條件至少為 true:
    • 呼叫進程是前景進程。
    • 呼叫進程是由前景進程啟動。
    • 目前沒有前景視窗,因此沒有前景進程。
    • 呼叫行程收到最後一個輸入事件。
    • 前景進程或呼叫進程正在偵錯。

可以設定前景窗口的進程可以啟用另一個進程,藉由呼叫 AllowSetForegroundWindow來設定前景視窗。 dwProcessId 參數所指定的進程會失去下次使用者產生輸入時設定前景視窗的能力,除非輸入導向該程式,或下一次進程呼叫 AllowSetForegroundWindow,除非先前呼叫 AllowSetForegroundWindow指定相同的進程。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 winuser.h (包括 Windows.h)
程式庫 User32.lib
Dll User32.dll
API 集合 ext-ms-win-ntuser-window-l1-1-0 (於 Windows 8)

另請參閱

概念

LockSetForegroundWindow

參考

SetForegroundWindow

Windows