CLI для установки обоев второго монитора

#windows-10

Вопрос:

У меня ноутбук с Windows 10 подключен к двум мониторам в режиме расширенного отображения. Я хотел бы установить только обои второго монитора для определенного изображения. Ручной способ сделать это — перейти: щелкните правой кнопкой мыши на рабочем столе -> Персонализация -> Выберите картинку -> Щелкните правой кнопкой мыши и установите для монитора 2

Есть ли какой-либо способ автоматизировать это с помощью скрипта (bat / powershell)?

Мне удалось заставить приведенный ниже фрагмент кода работать, однако он устанавливает обои для обоих дисплеев

 function Set-Wallpaper($MyWallpaper){
$code = @' 
using System.Runtime.InteropServices; 
namespace Win32{ 
    
     public class Wallpaper{ 
        [DllImport("user32.dll", CharSet=CharSet.Auto)] 
         static extern int SystemParametersInfo (int uAction , int uParam , string lpvParam , int fuWinIni) ; 
         
         public static void SetWallpaper(string thePath){ 
            SystemParametersInfo(20,0,thePath,3); 
         }
    }
 } 
'@

add-type $code 
[Win32.Wallpaper]::SetWallpaper($MyWallpaper)
}

Set-WallPaper("C:Wallpapersnature.jpg")
 

Спасибо

Ответ №1:

Ответ доступен в сообщении ниже https://forums.powershell.org/t/powershell-to-set-second-monitor-wallpaper/17949