Windows API触发壁纸洗牌

有没有办法在Windows壁纸幻灯片触发洗牌? 最好是我可以从.net使用的东西

编辑:所以我试图使用IActiveDesktop接口,我从这里得到它,我试图使用它像这样:

public static IActiveDesktop GetActiveDesktop() { Type typeActiveDesktop = Type.GetTypeFromCLSID(new Guid("{75048700-EF1F-11D0-9888-006097DEACF9}")); return (IActiveDesktop) Activator.CreateInstance(typeActiveDesktop); } 

然后像这样调用它:

 IActiveDesktop dt = GetActiveDesktop(); dt.ApplyChanges(AD_APPLY.ALL | AD_APPLY.FORCE | AD_APPLY.BUFFERED_REFRESH); 

我运行代码时没有任何反应,也没有错误。

Solutions Collecting From Web of "Windows API触发壁纸洗牌"

尝试以下操作:

您的主题位于C:\ Users \ USERNAME \ AppData \ Local \ Microsoft \ Windows \ Themes \ .theme

打开.theme文件并更新[幻灯片]部分中的随机标志:

 [Slideshow] Shuffle=1 

然后使用IActiveDesktop接口重新加载主题,使用以下参数调用ApplyChange:

AD_APPLY_ALL | AD_APPLY_FORCE | AD_APPLY_BUFFERED_REFRESH

OH WAIT,刚刚发现你只是想洗牌。 Flot2011的答案是要走的路。

您可以通过以下方式找到当前用户主题的完整路径:

HKCU \软件\微软\的Windows \ CurrentVersion \主题\ CurrentTheme

如果有任何这样的API,它可能不会被暴露。 如果我是你,我会做的最好的事情是在桌面上下文菜单中模拟点击“下一个桌面背景”选项。 有几种方法可以做到这一点,但我会建议你使用GetDesktopWindow api,模拟鼠标右键并发送'n'键。 我不完全确定这将实现什么效果,但它应该工作。

另外看看这个: http : //www.technixupdate.com/keyboard-shortcut-or-hotkey-to-switch-to-next-windows-7-desktop-wallpaper/

注册表项

HKEY_CURRENT_USER \ Control Panel \ Personalization \ Desktop Slideshow

包含值应该让你控制功能的几个方面。