前段时间,我注意到VLC有能力直接在桌面上播放视频。当我在学校使用Windows XP时,它会在图标下方播放。当我在家中使用Windows 7时,它会隐藏图标。我不确定是操作系统还是VLC的更新,但我对在图标下方播放很感兴趣。
注意到这一点后,我想制作一个动态桌面。没什么特别的,只是为了自己使用几个选定的视频。我最初的想法是在自己的窗口中播放视频(使用“mciSendString”),并对每个帧进行“PrintWindow”,将其保存到文件中,并将桌面壁纸设置为该文件。后来我忘记了具体的代码,但它并没有完全起作用,而且无需说,性能会非常差。
回过头来看,我意识到肯定有比那更有效的方法,但我无法完全理解那是什么。
我尝试过(现在都在Windows 7中)将视频的父窗口设置为“GetDesktopWindow”,以便最小化所有窗口,留下一个新窗口在任务栏上播放视频,但可以通过单击Aero Peek按钮或按Win + D键查看桌面。
然后我尝试了同样的方法,将父窗口设置为桌面的文件夹视图窗口。结果是同样尺寸的窗口播放视频,但这次无法访问桌面,并且没有创建新窗口。就像它正在顶部播放大多数桌面一样,但小部件在上方,右侧和底部区域仍然显示,因为播放窗口尺寸较小。
VLC是如何在桌面上播放视频的,看起来像是动态壁纸?让它在图标下方播放是否更难(如果你添加了Windows 7中的小部件呢)?该程序将在Windows XP上使用。我不确定DirectShow是否有任何有用的东西,但我愿意使用它,除了MCI之外,还可以使用其他Windows API领域。如果有区别,我更喜欢C++的解决方案。.NET也可以,但可能需要额外的时间来工作。
注意到这一点后,我想制作一个动态桌面。没什么特别的,只是为了自己使用几个选定的视频。我最初的想法是在自己的窗口中播放视频(使用“mciSendString”),并对每个帧进行“PrintWindow”,将其保存到文件中,并将桌面壁纸设置为该文件。后来我忘记了具体的代码,但它并没有完全起作用,而且无需说,性能会非常差。
回过头来看,我意识到肯定有比那更有效的方法,但我无法完全理解那是什么。
我尝试过(现在都在Windows 7中)将视频的父窗口设置为“GetDesktopWindow”,以便最小化所有窗口,留下一个新窗口在任务栏上播放视频,但可以通过单击Aero Peek按钮或按Win + D键查看桌面。
然后我尝试了同样的方法,将父窗口设置为桌面的文件夹视图窗口。结果是同样尺寸的窗口播放视频,但这次无法访问桌面,并且没有创建新窗口。就像它正在顶部播放大多数桌面一样,但小部件在上方,右侧和底部区域仍然显示,因为播放窗口尺寸较小。
VLC是如何在桌面上播放视频的,看起来像是动态壁纸?让它在图标下方播放是否更难(如果你添加了Windows 7中的小部件呢)?该程序将在Windows XP上使用。我不确定DirectShow是否有任何有用的东西,但我愿意使用它,除了MCI之外,还可以使用其他Windows API领域。如果有区别,我更喜欢C++的解决方案。.NET也可以,但可能需要额外的时间来工作。