【问题标题】:How to start a slideshow desktop change in Windows 7如何在 Windows 7 中启动幻灯片桌面更改
【发布时间】:2009-08-07 20:05:53
【问题描述】:

我正在尝试触发桌面幻灯片更改,但找不到公共 API 来执行此操作...

我越接近看到正在使用的方法的名称(它们使用的是 COM 对象,但我不知道实例化它的 CLSID)。

我已经知道如何更改桌面墙纸(我已经这样做了),我想要的是一种触发幻灯片转换的方法(Windows 7 的新功能)。

【问题讨论】:

    标签: windows-7 slideshow wallpaper


    【解决方案1】:

    这并不能回答您的问题,您可能已经解决了,但如果桌面幻灯片引擎(我将称之为)已启动(如果您调出“个性化”>“桌面背景”然后从“图片位置”下拉菜单中选择“Windows 桌面背景”,然后您会看到背景淡入淡出 - 这是引擎开启)然后您可以通过调用 JPEG 图片的“SetWallpaper”来使用IActiveDesktop interface然后是带有以下参数的“ApplyChanges”:

    AD_APPLY_ALL | AD_APPLY_FORCE | AD_APPLY_BUFFERED_REFRESH

    当您这样做时,您会注意到幻灯片过渡效果用于显示您指定的壁纸。可爱。

    但是重新启动(或关闭 Explorer.exe 并重新启动它)并且相同的调用不会进行转换,它只会以旧的即时方式更改背景。使用 Spy++ 进行的一些挖掘表明,当幻灯片引擎运行时,实际的桌面 FolderView 不再位于窗口父/子关系中的“程序管理器”下,它由一个名为“WorkerW”的新窗口拥有,该窗口位于资源管理器内(捆绑很好地与您上面的调用堆栈)。换句话说,它正在从 Progman 控制桌面窗口。

    所以你需要做的是弄清楚如何让资源管理器初始化桌面窗口的新所有者('幻灯片引擎'),然后你可以使用 IActiveDesktop 界面来更改背景。

    【讨论】:

    • 嘿,谢谢你的信息,至少我有更近的地方可以看看......每当(如果)我得到更多关于这方面的信息时,我会发布它。
    猜你喜欢
    • 1970-01-01
    • 2021-11-16
    • 2012-07-05
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    相关资源
    最近更新 更多