【发布时间】:2019-10-01 14:36:26
【问题描述】:
有没有办法在 C++ 中获取 Windows 壁纸(图标后面)的句柄以便在其上绘图? 这将允许制作等效的活动桌面(在 Windows XP 之后停止)、等效的 Wallpaper Engine 或任何其他类似工具。 (以我为例,对壁纸进行温度和资源使用监控)。
注意:GetDesktopWindow() 返回的句柄返回的是桌面图标级别的窗口,而不是它后面。
similar questions 的解决方案对我不起作用。 具体来说,我尝试了 VLC 媒体播放器的 wallpaper mode 代码。
关键代码是:
hwnd = FindWindow( _T("Progman"), NULL );
if( hwnd ) hwnd = FindWindowEx( hwnd, NULL, _T("SHELLDLL_DefView"), NULL );
if( hwnd ) hwnd = FindWindowEx( hwnd, NULL, _T("SysListView32"), NULL );
if( !hwnd )
{
msg_Warn( p_vout, "couldn't find \"SysListView32\" window, "
"wallpaper mode not supported" );
return;
}
但它不会在壁纸上绘制。
【问题讨论】:
标签: c++ windows winapi desktop-wallpaper