ScnLib_EnableGameCaptureMode()

ScnLib_EnableGameCaptureMode()

标准版专业版超级版游戏版
C++ __declspec(dllimport) void __stdcall ScnLib_EnableGameCaptureMode(BOOL bEnable);
C# [DllImport("ScnLib.dll")] public static extern void ScnLib_EnableGameCaptureMode(bool Enable);
Basic Public Declare Sub ScnLib_EnableGameCaptureMode Lib "ScnLib.dll" (ByVal Enable As Boolean)
Delphi procedure ScnLib_EnableGameCaptureMode(Enable: LongBool); stdcall; external 'ScnLib.dll';
  • 描述
    启用/禁用游戏屏幕捕获功能。

  • 参数
    • Enable [in]
      TRUE:启用游戏屏幕捕获功能。
      FALSE:禁用游戏屏幕捕获功能。
  • 返回值
    无。

  • 备注
    Windows 平台上的电脑游戏软件通常都会使用基于 Direct3D/OpenGL 硬件加速的底层接口来渲染精美的实时 3D 游戏画面,还有一些其它多媒体软件(例如各种媒体播放器软件)也会采用 Direct3D/OpenGL 来渲染画面。如果想要捕获 Direct3D/OpenGL 渲染的画面的话,通过普通屏幕捕获技术(例如 GDI 屏幕捕获或 DXGI 桌面复制等技术)的实现往往性能不佳,而本 SDK 则是通过特殊的 API 钩子技术实现了高性能 Direct3D/OpenGL 渲染画面捕获,同时还可以自动定位 Direct3D/OpenGL 渲染画面的位置,甚至还可以在 Direct3D/OpenGL 渲染画面之上叠加显示一个自定义覆盖画面,可用于显示一些特别信息(例如录制状态标志或游戏帧速率等等)。在未启用游戏屏幕捕获功能的情况下,SDK 仅会通过普通屏幕捕获技术来捕获最后一次设定的屏幕捕获区域。在启用了游戏屏幕捕获功能的情况下,SDK 则会进入游戏捕获模式,目标游戏窗口有两种确定方式:1)调用 ScnLib_SetCaptureWnd() 绑定一个有效窗口句柄,如果 SDK 检测到该窗口正在使用 Direct3D/OpenGL 渲染画面的话就通过 API 钩子捕获其画面,否则就通过普通屏幕捕获技术捕获该窗口的客户区;2)没有绑定任何窗口句柄(没调用或传递零值调用 ScnLib_SetCaptureWnd())或者绑定的窗口已关闭,SDK 会自动检测前台活动窗口是否正在使用 Direct3D/OpenGL 渲染画面,如果是的话则将其设定为目标游戏窗口并通过 API 钩子捕获其画面,否则就通过普通屏幕捕获技术捕获最后一次设定的屏幕捕获区域。注意:建议启用游戏屏幕捕获功能的录制进程要以管理员权限运行,否则当目标游戏进程是以管理员权限运行的话,SDK 会因为权限不足而无法通过 API 钩子进行高性能 Direct3D/OpenGL 渲染画面捕获。要检查当前是否启用了游戏屏幕捕获功能,请调用 ScnLib_IsGameCaptureModeEnabled()

  • 参见
    ScnLib_IsGameCaptureModeEnabled(), ScnLib_IsGPUAccelerationEnabled(), ScnLib_SetCaptureWnd(), ScnLib_GetGamePath(), ScnLib_GetGameWnd(), ScnLib_ShowInGameOverlay()

下载 SDK API 总览