As title says - the wallpaper is only turning black. Here is the code I am currently using (found it on a website (I think it was stackoverflow) that I cannot find again for the life of me):
function Set-Wallpaper {
param (
[string]$Path = ".\wallpaper.png",
[ValidateSet('Tile', 'Center', 'Stretch', 'Fill', 'Fit', 'Span')]
[string]$Style = 'Fill'
)
begin {
try {
Add-Type @"
using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;
namespace Wallpaper
{
public enum Style : int
{
Tile, Center, Stretch, Fill, Fit, Span, NoChange
}
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;
case Style.Span :
key.SetValue( @"WallpaperStyle", "22" ) ;
key.SetValue( @"TileWallpaper", "0" ) ;
break;
case Style.NoChange :
break;
}
key.Close();
}
}
}
"@
} catch {}
$StyleNum = @{
Tile = 0
Center = 1
Stretch = 2
Fill = 3
Fit = 4
Span = 5
}
}
process {
[Wallpaper.Setter]::SetWallpaper($Path, $StyleNum[$Style])
}
}
Set-WallPaper -Path 'c:\path\to\wallpaper.jpg' -Style Fill
I tried changing it from a png to bmp image, didn't work - went back to png in case it just was a fluke, wasn't. Wallpaper is still black. VSCode isn't giving me any errors - it believes tha tthe code should run just fine.
Thank you!