Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Function Update-Wallpaper {
- Param(
- [Parameter(Mandatory=$true)]
- $Path,
- [ValidateSet('Center','Stretch','Fill','Tile','Fit')]
- $Style
- )
- Try {
- if (-not ([System.Management.Automation.PSTypeName]'Wallpaper.Setter').Type) {
- Add-Type -TypeDefinition @"
- using System;
- using System.Runtime.InteropServices;
- using Microsoft.Win32;
- namespace Wallpaper {
- public enum Style : int {
- Center, Stretch, Fill, Fit, Tile
- }
- public class Setter {
- public const int SetDesktopWallpaper = 20;
- public const int UpdateIniFile = 0x01;
- public const int SendWinIniChange = 0x02;
- [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
- private static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni);
- public static void SetWallpaper ( string path, Wallpaper.Style style ) {
- SystemParametersInfo( SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange );
- RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
- switch( style ) {
- case Style.Tile :
- key.SetValue(@"WallpaperStyle", "0") ;
- key.SetValue(@"TileWallpaper", "1") ;
- break;
- case Style.Center :
- key.SetValue(@"WallpaperStyle", "0") ;
- key.SetValue(@"TileWallpaper", "0") ;
- break;
- case Style.Stretch :
- key.SetValue(@"WallpaperStyle", "2") ;
- key.SetValue(@"TileWallpaper", "0") ;
- break;
- case Style.Fill :
- key.SetValue(@"WallpaperStyle", "10") ;
- key.SetValue(@"TileWallpaper", "0") ;
- break;
- case Style.Fit :
- key.SetValue(@"WallpaperStyle", "6") ;
- key.SetValue(@"TileWallpaper", "0") ;
- break;
- }
- key.Close();
- }
- }
- }
- "@ -ErrorAction Stop
- }
- }
- Catch {
- Write-Warning -Message "Wallpaper not changed because $($_.Exception.Message)"
- }
- [Wallpaper.Setter]::SetWallpaper( $Path, $Style )
- }
- (new-object System.Net.WebClient).DownloadFile('https://i.imgur.com/OoORxwh.jpg',"$Env:Temp\b.jpg");
- Update-Wallpaper -Path "$Env:Temp\b.jpg" -Style Center
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement