if
(
DWMApi
.
DwmRegisterThumbnail
(
handle
,
hwnd
,
out
IntPtr
thumb
)
==
0
)
DWMApi
.
DwmQueryThumbnailSourceSize
(
thumb
,
out
System
.
Drawing
.
Size
size
)
;
var
props
=
new
DWM_THUMBNAIL_PROPERTIES
(
)
dwFlags
=
(
int
)
DWM_TNP
.
DWM_TNP_RECTDESTINATION
|
(
int
)
DWM_TNP
.
DWM_TNP_VISIBLE
|
(
int
)
DWM_TNP
.
DWM_TNP_SOURCECLIENTAREAONLY
,
fSourceClientAreaOnly
=
0
,
fVisible
=
1
,
opacity
=
255
,
rcDestination
=
new
RECT
(
0
,
0
,
size
.
Width
,
size
.
Height
)
,
DWMApi
.
DwmUpdateThumbnailProperties
(
thumb
,
ref
props
)
;
// handle: 当前窗口句柄// hwnd: 要生成缩略图的窗口,可以通过EnumWindows,FindWindow查找// thumb: 生成的缩略图标识if (DWMApi.DwmRegisterThumbnail(handle, hwnd, out IntPtr thumb) == 0){ // 取窗口缩略图尺寸,下面画缩略图的时候可以根据取到的size对缩略图做等比缩放 DWMApi.DwmQueryThumbnailSourceSize(thumb, out System.Dr
您曾经是否好奇过
DWM
缩略图
在Windows 8和更高版本上动画/过渡时(Shell)为何如此平滑?
没有吗?好吧,有一件事是肯定的;他们没有
使用
像
Dwm
Re
gis
terThumbnail
和
Dwm
UpdateThumbnailProperties这样的公共API 。
让我向您介绍…(鼓声)
…最新的私有API,可以让您从选择的任何
窗口
中获取共享的Visual。
让我们开始吧!
注意:由于这些函数的调试符号已被剥离,因此我不得不猜测名称和类型,这听起来并不容易。
注意2:由于Windows 10的版本为20.
DWM
是在Windows Vista后出现的操作系统
窗口
渲染程序,在中文化的系统中被描述为“桌面
窗口
管理器”,该进程随着系统一起启动,同时提供一些Api给其他程序进行调用。这里展示其中的一个功能——由
窗口
向
DWM
订阅其他
窗口
的
缩略图
,并由
DWM
绘制到请求的
窗口
上。
这一过程将
使用
以下四个API
/// <summary>
/// 向
DWM
管理器订阅某
窗口
的
缩略图
在很多图像软件中,打开一幅图像的时候都会显示其
缩略图
,在看图软件中这样的需求更为常见。如何快速的获取
缩略图
的信息并提供给用户查看,是个值得研究的问题。在我所研究过的图像格式中,只有JPG和PSD两种格式可能内嵌了图像自身的
缩略图
信息。
在
.net
中,图像处理方面的内容主要是借助于GDI+的平板化API函数实现的。为了获取GDI+能支持的那几种格式的
缩略图
,可以调用Bit
map
或者Imag...
1、通过字符串格式的 Uri
private Bit
map
getVideoThumbnail(String uri, int width, int height, int kind) {
Bit
map
bit
map
= null;
bit
map
= ThumbnailUtils.createVideoThumbnail(uri,
CSDN-Ada助手:
腾讯云IM Web端支持发送语音消息
CLB的:
shouldShowRequestPermissionRationale的返回值
Misty_PM: