SetWindowDisplayAffinity 函式 (winuser.h)

指定視窗的內容可以顯示的位置。

語法

BOOL SetWindowDisplayAffinity(
  [in] HWND  hWnd,
  [in] DWORD dwAffinity
);

參數

[in] hWnd

類型: HWND

最上層視窗的句柄。 窗口必須屬於目前的進程。

[in] dwAffinity

類型: DWORD

顯示親和性設定,指定視窗的內容可以顯示的位置。

此參數可以是下列其中一個值。

意義
WDA_NONE
0x00000000
對視窗的顯示位置施加任何限制。
WDA_MONITOR
0x00000001
視窗內容只會顯示在監視器上。 在其他地方,視窗隨即出現,沒有內容。
WDA_EXCLUDEFROMCAPTURE
0x00000011
視窗只會顯示在監視器上。 在其他地方,視窗完全不會出現。

此親和性的其中一個用法是用於顯示視訊錄製控件的視窗,讓控件不包含在擷取中。

Windows 10 2004 版中引進。 請參閱有關舊版 Windows 相容性的備註。

傳回值

類型: BOOL

如果函式成功,則會傳回 TRUE;否則,它會在非最上層視窗上進行函式呼叫時傳回 FALSE 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

此函式和 GetWindowDisplayAffinity 的設計目的是支援 Windows 7 的視窗內容保護功能。 此功能可讓應用程式保護自己的螢幕窗口內容,使其無法透過一組特定的公用操作系統功能和 API 來擷取或複製。 不過,只有在桌面視窗管理員 (DWM) 撰寫桌面時,才能運作。

請務必注意,不同於數位版權管理 (DRM) 的安全性功能或實作,不保證使用 SetWindowDisplayAffinityGetWindowDisplayAffinity,以及其他必要的功能,例如 DwmIsCompositionEnabled,將會嚴格保護窗口內容,例如有人拍攝螢幕的相片。

從 Windows 10 版本 2004 開始,WDA_EXCLUDEFROMCAPTURE是支援的值。 將顯示親和性設定為舊版 Windows 上WDA_EXCLUDEFROMCAPTURE的行為會如同套用WDA_MONITOR一樣。

規格需求

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

另請參閱

SetWindowDisplayAffinityWindows