Useful 'Set As Wallpaper (Stretched)' PowerShell Script I added as a 'Custom Context Menu' since MC doesn't give you the "Set As Background Image" option for instance when in a Flat View (doesn't show up), this custom command will always display though (change the Script FilePath tailored to your own path (remember directory subpaths must be in double slashes)) (To add to Context Menu goto Config > "Custom Context Menu") [Tested on MC 15.8 running Windows 10]:
claude-opus-4-5-20251101-thinking-32k AI Generated::
## Step 1: Fixed PowerShell Script
Save this as `C:\SetWallpaper.ps1`:
```powershell
param([string]$ImagePath)
# Load WinForms so MessageBox works
# Add-Type -AssemblyName System.Windows.Forms
# Debug: Show what path was received (remove this line after testing)
# [System.Windows.Forms.MessageBox]::Show($ImagePath)
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name WallpaperStyle -Value '2'
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name TileWallpaper -Value '0'
$code = @"
using System;
using System.Runtime.InteropServices;
public class Wallpaper {
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
}
"@
Add-Type -TypeDefinition $code -ErrorAction SilentlyContinue
[Wallpaper]::SystemParametersInfo(20, 0, $ImagePath, 3)
```
---
## Step 2: Corrected MC.Run Command
The issue is likely the variable not expanding properly. Try this (Save this as a User-Defined Command then add it to Config > Custom Context Menu to set the selected file as a Stretched Wallpaper):
```multiscript
@var $imgPath = GetSourceFocusPath();
@var $arguments = "-ExecutionPolicy Bypass -File \"C:\\SetWallpaper.ps1\" -ImagePath \"" + $imgPath + "\"";
MC.Run CMD="powershell.exe" ARG="{$arguments}";
```
---
Notes (if you want other styles later)
These registry values are the ones Windows uses:
- Stretch: WallpaperStyle=2, TileWallpaper=0 (used above)
- Fill: WallpaperStyle=10, TileWallpaper=0
- Fit: WallpaperStyle=6, TileWallpaper=0
- Center: WallpaperStyle=0, TileWallpaper=0
- Tile: WallpaperStyle=0, TileWallpaper=1