批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

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

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

好长的代码  
脚本小子:www.jbxiaozi.com

TOP

回复 2# ivor


    把你的短的拿出来分享一下吧

TOP

返回列表