# FScreenCaptureConfiguration (/zh-CN/api-reference/rtc/unreal-blueprint/class-screencaptureconfiguration)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="class_screencaptureconfiguration__prototype"></a>

```cpp
USTRUCT(BlueprintType)
struct FScreenCaptureConfiguration
{
	GENERATED_BODY()
public:
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration")
	bool isCaptureWindow = false;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration")
	int displayId = 0;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration")
	FRectangle screenRect = FRectangle();
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration")
	int64 windowId = 0;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration")
	FScreenCaptureParameters params = FScreenCaptureParameters();
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration")
	FRectangle regionRect = FRectangle();
	FScreenCaptureConfiguration(){}
	FScreenCaptureConfiguration(const agora::rtc::ScreenCaptureConfiguration & AgoraData){
		isCaptureWindow = AgoraData.isCaptureWindow;
		displayId = AgoraData.displayId;
		screenRect = FRectangle(AgoraData.screenRect);
				params = FScreenCaptureParameters(AgoraData.params);
		regionRect = FRectangle(AgoraData.regionRect);
	}
	agora::rtc::ScreenCaptureConfiguration CreateAgoraData() const {
		agora::rtc::ScreenCaptureConfiguration AgoraData;
		AgoraData.isCaptureWindow = isCaptureWindow;
		AgoraData.displayId = displayId;
		AgoraData.screenRect = screenRect.CreateAgoraData();
				AgoraData.params = params.CreateAgoraData();
		AgoraData.regionRect = regionRect.CreateAgoraData();
		return AgoraData;
	}
	void FreeAgoraData(agora::rtc::ScreenCaptureConfiguration & AgoraData) const {
		screenRect.FreeAgoraData(AgoraData.screenRect);
		params.FreeAgoraData(AgoraData.params);
		regionRect.FreeAgoraData(AgoraData.regionRect);
	}
};
```

<a id="class_screencaptureconfiguration__parameters"></a>

## 属性 [#属性]

<ParameterList>
<a id="iscapturewindow"></a>
<Parameter name="isCaptureWindow">

是否采集屏幕上的窗口：

<a id="class_screencaptureconfiguration__ul_ln3_hwd_mqb"></a>

- `true`：采集窗口。
- `false`：（默认）采集屏幕，不采集窗口。

</Parameter>
<a id="displayid"></a>
<Parameter name="displayId">

（仅适用于 macOS 平台）屏幕的 display ID。

:::caution
注意： 请仅在 Mac 设备上采集屏幕时使用该参数。
:::

</Parameter>
<a id="screenrect"></a>
<Parameter name="screenRect">

（仅适用于 Windows 平台）待共享的屏幕相对于虚拟屏的位置。

<a id="class_screencaptureconfiguration__note_ifh_swd_mqb"></a>

:::caution
注意： 请仅在 Windows 设备上采集屏幕时使用该参数。
:::

</Parameter>
<a id="windowid"></a>
<Parameter name="windowId">

（仅适用于 Windows 和 macOS 平台）窗口 ID。

:::caution
注意： 请仅在采集窗口时使用该参数。
:::

</Parameter>
<a id="params"></a>
<Parameter name="params">

（仅适用于 Windows 和 macOS 平台）屏幕共享流的编码参数配置。详见 [FScreenCaptureParameters](/zh-CN/api-reference/rtc/unreal-blueprint/class-screencaptureparameters)。

</Parameter>
<a id="regionrect"></a>
<Parameter name="regionRect">

（仅适用于 Windows 和 macOS 平台）待共享区域相对于整个屏幕的位置。详见 [FRectangle](/zh-CN/api-reference/rtc/unreal-blueprint/class-rectangle)。如不填，则表示共享整个屏幕。如果设置的共享区域超出了屏幕的边界，则只共享屏幕内的内容。 如果将 FRectangle 中的 width 或 height 设为 0 ，则共享整个屏幕。

</Parameter>
</ParameterList>
