找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16298|回复: 2

[转载代码] [PowerShell每日技巧]更改桌面壁纸(20140110)

[复制链接]
发表于 2014-1-17 13:22:19 | 显示全部楼层 |阅读模式
To change the current desktop wallpaper and make this change effective immediately, PowerShell can tap into the Windows API calls. Here is a function that changes the wallpaper immediately:
  1. function Set-Wallpaper
  2. {
  3.     param(
  4.         [Parameter(Mandatory=$true)]
  5.         $Path,

  6.         [ValidateSet('Center', 'Stretch')]
  7.         $Style = 'Stretch'
  8.     )

  9.     Add-Type @"
  10. using System;
  11. using System.Runtime.InteropServices;
  12. using Microsoft.Win32;
  13. namespace Wallpaper
  14. {
  15. public enum Style : int
  16. {
  17. Center, Stretch
  18. }
  19. public class Setter {
  20. public const int SetDesktopWallpaper = 20;
  21. public const int UpdateIniFile = 0x01;
  22. public const int SendWinIniChange = 0x02;
  23. [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
  24. private static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni);
  25. public static void SetWallpaper ( string path, Wallpaper.Style style ) {
  26. SystemParametersInfo( SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange );
  27. RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
  28. switch( style )
  29. {
  30. case Style.Stretch :
  31. key.SetValue(@"WallpaperStyle", "2") ;
  32. key.SetValue(@"TileWallpaper", "0") ;
  33. break;
  34. case Style.Center :
  35. key.SetValue(@"WallpaperStyle", "1") ;
  36. key.SetValue(@"TileWallpaper", "0") ;
  37. break;
  38. }
  39. key.Close();
  40. }
  41. }
  42. }
  43. "@

  44.     [Wallpaper.Setter]::SetWallpaper( $Path, $Style )
  45. }

  46. Set-Wallpaper -Path 'C:\Windows\Web\Wallpaper\Characters\img24.jpg'
复制代码
http://powershell.com/cs/blogs/tips/archive/2014/01/10/change-desktop-wallpaper.aspx
发表于 2014-1-18 10:46:37 | 显示全部楼层
好长的代码  
 楼主| 发表于 2014-1-20 09:39:16 | 显示全部楼层
回复 2# ivor


    把你的短的拿出来分享一下吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:40 , Processed in 0.017710 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表