1
Script / [SCRIPT] Set As Background Wallpaper (Stretched)
« on: February 06, 2026, 03:38:16 »
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:
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
Please consider it, because that is how I intended it to function —that's why I said "make it a Checkbox option in Core Settings or Explorer Panel" —I'am fine /w it as it is (in Popup Menu), but I'd just like it to remember the setting (should stick for the next launch automatically) ! Thank you ! 
I like how it plays the audio from video files as well (MP4's), I'am currently using this feature extensively !! 🙏 Happy holidays to everyone & God bless ! 🎄🎅
I could still loop my MP3 songs…
