You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP调用GraphicsCaptureAccess.RequestAccessAsync实现无框捕获抛出异常如何解决

无框屏幕捕获调用RequestAccessAsync异常解决方案

你遗漏了以下配置和操作步骤:

  • 确认运行环境版本要求:GraphicsCaptureAccessKind.Borderless 最低支持的系统版本为 Windows 10 SDK 20348(Windows Server 2022)/ Windows 11 21H2(22000),低于该版本的系统无法调用该API,会直接抛出异常。
  • 修正项目目标版本配置:除了SDK版本更新为20348外,必须在项目属性中将应用的目标版本设置为 ≥ 10.0.20348.0,最低支持版本也不能低于你当前适配的无框捕获最低系统要求。
  • 增加API可用性判断:调用RequestAccessAsync前必须先判断当前系统是否支持该API,避免在不兼容系统上调用出错:
// 先判断API是否可用
if (ApiInformation.IsTypePresent("Windows.Graphics.Capture.GraphicsCaptureAccess") 
    && ApiInformation.IsEnumNamedValuePresent("Windows.Graphics.Capture.GraphicsCaptureAccessKind", "Borderless"))
{
    // 再申请权限
    AppCapabilityAccessStatus appCapabilityAccessStatus = await GraphicsCaptureAccess.RequestAccessAsync(GraphicsCaptureAccessKind.Borderless);
}
  • 调整API调用顺序:必须先申请无框捕获权限,再创建捕获会话、设置IsBorderRequired属性,错误的调用顺序也可能触发异常。修正后的代码顺序如下:
// 1. 先判断API可用性并申请权限
if (ApiInformation.IsTypePresent("Windows.Graphics.Capture.GraphicsCaptureAccess") 
    && ApiInformation.IsEnumNamedValuePresent("Windows.Graphics.Capture.GraphicsCaptureAccessKind", "Borderless"))
{
    var accessStatus = await GraphicsCaptureAccess.RequestAccessAsync(GraphicsCaptureAccessKind.Borderless);
    if (accessStatus != AppCapabilityAccessStatus.Allowed)
    {
        // 处理权限拒绝逻辑
        return;
    }
}

// 2. 再创建捕获帧池和会话
Direct3D11CaptureFramePool _framePool = Direct3D11CaptureFramePool.CreateFreeThreaded(
        _canvasDevice, 
        DirectXPixelFormat.B8G8R8A8UIntNormalized,
        2, 
        _captureItem.Size);
GraphicsCaptureSession _session = _framePool.CreateCaptureSession(_captureItem);

// 3. 最后设置无框属性
_session.IsBorderRequired = false;
  • 确认应用身份合规:只有打包的MSIX应用支持在清单中声明uap11:Capability,如果你是未打包的桌面应用,需要额外通过侧加载或者微软商店认证才能使用无框捕获能力,未打包应用直接声明该权限不会生效。

你遇到的异常截图参考:
异常截图

内容的提问来源于stack exchange,提问作者Karthik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:57:04