我是学 rust 的,rust 现在有 windows 的官方库,我现在想实现在 windows 上实时录制最小化窗口的界面.
我找了一些,也问了 gpt, 它推荐的 DXGI 无法录制最小化窗口.
请问有开发大神吗?
举个场景:我打开了一个浏览器,里面有动画片在播放,我最小化了之后,我想录制浏览器上的变化.
先谢谢各位了.我对 windows 的 api 不熟悉..
![]() |
1
Asakijz 3 天前
感觉用 obs 会比较简单点
https://github.com/dnaka91/obws |
2
hwdq0012 3 天前
查任务栏预览的那个接口行不, 预览的窗口视频是会动的
|
3
qianqian888 OP @hwdq0012 谢谢 那个是啥接口哇?
|
4
qianqian888 OP @Asakijz 谢谢,我倾向于直接找 windows 的 api 然后我在 Rust 里调用它(通过 windows-rs 库).
|
5
hwdq0012 3 天前
@qianqian888 不告诉你
|
6
qianqian888 OP @hwdq0012 啊??? 哈哈...谢谢,
我先去搜一下 |
7
capric 3 天前
dxgi 是经过 dwm 窗口合成器的,没法录制最小窗口,你可以找到最小化窗口的 handle ,看看能不能用 gdi grab 录制,可以用 ffmpeg 测试看看,如果可以的话,就用 GetDC 系列 api ,参考这里 https://github.com/FFmpeg/FFmpeg/blob/master/libavdevice/gdigrab.c
|
![]() |
8
geelaw 3 天前 via iPhone ![]() 这当然一般情况下是不可能的,因为最小化的窗口通常不会绘制自己。主流浏览器会直接停止视频合成。
即使你录到了,很可能也不是你所期待的:古代的 Windows 上最小化窗口是直接画自己的图标的;现代的 Windows 上最小化的窗口,大小基本上是 160x31 ,如果任务栏存在,那么位置在 -32000 ,否则位置是从左下角开始堆叠。 |
9
qianqian888 OP @hwdq0012 我查到一个 DwmRegisterThumbnail 但 AI 告诉我说 这个是低分辨率的,而且更新频率不行..是吗?
|
10
hwdq0012 3 天前
@qianqian888 我也不知道,所以不告诉你
|
11
loli 3 天前
你可以看看这个的实现,最小化不行,至少得放在后台.不限制画面尺寸
https://github.com/LorenzCK/OnTopReplica |