Как изменить фон рабочего стола в windows 10 через cmd

I've been trying to set my wallpaper in Windows 10 by doing the following in a command prompt window: reg add "HKEY_CURRENT_USERControl PanelDesktop" /v Wallpaper /t REG_SZ /d wallpaper_director...

I’ve been trying to set my wallpaper in Windows 10 by doing the following in a command prompt window:

reg add "HKEY_CURRENT_USERControl PanelDesktop" /v Wallpaper /t REG_SZ /d wallpaper_directory /f

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

This works once, but then if I try to change the wallpaper soon after it, it does not work.

Am I doing something wrong or how do I fix this?

Mofi's user avatar

Mofi

44.8k16 gold badges77 silver badges137 bronze badges

asked Oct 27, 2017 at 23:11

Logan Davenport's user avatar

Logan DavenportLogan Davenport

1711 gold badge2 silver badges6 bronze badges

1

It is very simple go to C:UsersyournameAppDataRoamingMicrosoftWindowsThemes here you find one image with name TranscodedWallpaper. Rename your image to TranscodedWallpaper and replace in this location(don’t keep extension). Do same thing inside cachedFile folder also.
After exicute RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True then your wallpaped got change

answered Jun 18, 2019 at 6:30

Mani Kumar's user avatar

Apparently, «RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters» (with or without «1, True» or «2, True») leads to inconsistent results (at least on my PC). I found the following PowerShell script, that always works on my PC: https://c-nergy.be/blog/?p=15291, option 2:

#-------------------------------------------------------------------#
# ScriptName : SetWall.ps1                                          #
# Description : Force a Desktop wallpaper Refresh                   #
# Credits  : Unknown (if you know original creator, let us know)    #
#                                                                   #
# Date : 01 July 2020                                               #
#-------------------------------------------------------------------#

#Modify Path to the picture accordingly to reflect your infrastructure
$imgPath="\Domain.labnetlogonWallpaper.png"
$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 

#Apply the Change on the system 
[Win32.Wallpaper]::SetWallpaper($imgPath)

answered Apr 18, 2021 at 10:17

Stijn Bousard's user avatar

0

I’ve been trying to set my wallpaper in Windows 10 by doing the following in a command prompt window:

reg add "HKEY_CURRENT_USERControl PanelDesktop" /v Wallpaper /t REG_SZ /d wallpaper_directory /f

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

This works once, but then if I try to change the wallpaper soon after it, it does not work.

Am I doing something wrong or how do I fix this?

Mofi's user avatar

Mofi

44.8k16 gold badges77 silver badges137 bronze badges

asked Oct 27, 2017 at 23:11

Logan Davenport's user avatar

Logan DavenportLogan Davenport

1711 gold badge2 silver badges6 bronze badges

1

It is very simple go to C:UsersyournameAppDataRoamingMicrosoftWindowsThemes here you find one image with name TranscodedWallpaper. Rename your image to TranscodedWallpaper and replace in this location(don’t keep extension). Do same thing inside cachedFile folder also.
After exicute RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True then your wallpaped got change

answered Jun 18, 2019 at 6:30

Mani Kumar's user avatar

Apparently, «RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters» (with or without «1, True» or «2, True») leads to inconsistent results (at least on my PC). I found the following PowerShell script, that always works on my PC: https://c-nergy.be/blog/?p=15291, option 2:

#-------------------------------------------------------------------#
# ScriptName : SetWall.ps1                                          #
# Description : Force a Desktop wallpaper Refresh                   #
# Credits  : Unknown (if you know original creator, let us know)    #
#                                                                   #
# Date : 01 July 2020                                               #
#-------------------------------------------------------------------#

#Modify Path to the picture accordingly to reflect your infrastructure
$imgPath="\Domain.labnetlogonWallpaper.png"
$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 

#Apply the Change on the system 
[Win32.Wallpaper]::SetWallpaper($imgPath)

answered Apr 18, 2021 at 10:17

Stijn Bousard's user avatar

0

есть ли возможность командной строки, чтобы изменить цвет фона рабочего стола Windows?

Я хочу установить фон рабочего стола для использования сплошных цветов (синий — rgb: 57, 109, 166) без фонового изображения. Единственное чтение, которое я нахожу, о том, как изменить обои для рабочего стола.

источник

фон хранится в реестре. Есть несколько различных способов установить его. Но есть несколько способов установить значение реестра через командную строку.

чтобы установить фон на определенный цвет, вам нужно снять любые обои и установить цвет.

HKEY_CURRENT_USERControl PanelColorsBackground = 'r g b'
HKEY_CURRENT_USERControl PanelDesktopWallpaper = ''

отвечен Zoredache 2014-12-10 22:13:51

источник

Я не думаю, что это вариант, но вы можете легко изменить цвет фона, щелкнув правой кнопкой мыши на рабочем столе, выбрав «Персонализация», выбрав «фон рабочего стола» и выбрав «сплошные цвета». Кроме того, вы можете сделать 1 пиксель х 1 пиксель изображения цвета вы хотите, и установить в качестве фона изображения.

источник

Если вы хотите сделать это автоматически, например, с помощью сценария входа или пакетного файла, вы можете использовать следующее:

ECHO Clearing Background ...
reg add "HKEY_CURRENT_USERControl PanelDesktop" /v WallPaper /t REG_SZ /d " " /f
reg add "HKEY_CURRENT_USERControl PanelColors" /v Background /t REG_SZ /d "0 0 0" /f

отвечен Klondicke 2018-03-16 20:44:50

источник

  • Remove From My Forums
  • Question

  • Hi people,

    did someone know how change the wallpaper with a command line ?

    thx a lot

Answers

  • Hi,

    I think this can be done with PowerShell. We could create a function to set wallpaper:

    Function Set-WallPaper($Value)

    {

     Set-ItemProperty -path ‘HKCU:Control PanelDesktop’ -name wallpaper -value $value

     rundll32.exe user32.dll, UpdatePerUserSystemParameters

    }

    Open PowerShell; paste the function above in it to make this function work.

    Now, if you want to change some wallpaper, you could type the following text:

    Set-WallPaper -value «the path of you wallpaper«

    If you are interested, I would like to share the following article with you for your reference:

    Hey, Scripting Guy! How Can I Hide
    My Desktop Wallpaper?

    If you need some help on writing this script, you can also post your question to The Official Scripting Guys Forum:

    The
    Official Scripting Guys Forum

    Hope this helps. Thanks.

    Alex Zhao


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    • Marked as answer by

      Friday, November 19, 2010 6:02 AM

  • Hi Alex, i found 2 other solution.

    the first one is to change the theme. like that (line command)

    rundll32.exe %SystemRoot%system32shell32.dll,Control_RunDLL %SystemRoot%system32desk.cpl desk,@Themes /Action:OpenTheme /file:""YOUPATH to the .theme"""
    

    the second one use a thirdparty freeware how work with command line to just change one wallpaper

    http://www.optimumx.com/downloads.html#SetWallpaper (it it work under Win.7)

    Thank for your Powersheel Solution (damn i need to learn Powershell :D )

    • Marked as answer by
      Leon Liu — MS
      Friday, November 19, 2010 6:02 AM

  • These answers are right, but didn’t work too smoothly for me on a 2008 R2 server. 

    If you just want to change a single image rather that updating the registry, then for a 2008 R2 box you need to replace this file:

    c:users<UserName>AppDataRoamingMicrosoftWindowsThemesTrancodedWallpaper.jpg

    and then for some reason I needed to run this command twice:

    rundll32.exe
    user32.dll, UpdatePerUserSystemParameters

    I was doing this with Powershell to automate a testbox setup after a CloneReplication job. What to check for though is the users «Themes» folder listed above encase it is named differently or you are using BMP files. if you are using PowerShell
    then you can find out the path and file name with:

    Get-ItemProperty -path ‘HKCU:Control PanelDesktop’ | Select -Property WallPaper

    Of course Cloud_TS has shown a good PowerShell Function to set that to whatever you want, which could be reshaped to centralise the WallPaper across multiple users or groups of users.

    I was looking for a simple swap and refresh and it was knowing the location and that I needed to run the
    rundll32.exe twice that was really slowing me down.

    Regards,

    Grae Hunter

    • Marked as answer by
      James_Patageul
      Sunday, August 27, 2017 1:38 PM

  • Remove From My Forums
  • Question

  • Hi people,

    did someone know how change the wallpaper with a command line ?

    thx a lot

Answers

  • Hi,

    I think this can be done with PowerShell. We could create a function to set wallpaper:

    Function Set-WallPaper($Value)

    {

     Set-ItemProperty -path ‘HKCU:Control PanelDesktop’ -name wallpaper -value $value

     rundll32.exe user32.dll, UpdatePerUserSystemParameters

    }

    Open PowerShell; paste the function above in it to make this function work.

    Now, if you want to change some wallpaper, you could type the following text:

    Set-WallPaper -value «the path of you wallpaper«

    If you are interested, I would like to share the following article with you for your reference:

    Hey, Scripting Guy! How Can I Hide
    My Desktop Wallpaper?

    If you need some help on writing this script, you can also post your question to The Official Scripting Guys Forum:

    The
    Official Scripting Guys Forum

    Hope this helps. Thanks.

    Alex Zhao


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    • Marked as answer by

      Friday, November 19, 2010 6:02 AM

  • Hi Alex, i found 2 other solution.

    the first one is to change the theme. like that (line command)

    rundll32.exe %SystemRoot%system32shell32.dll,Control_RunDLL %SystemRoot%system32desk.cpl desk,@Themes /Action:OpenTheme /file:""YOUPATH to the .theme"""
    

    the second one use a thirdparty freeware how work with command line to just change one wallpaper

    http://www.optimumx.com/downloads.html#SetWallpaper (it it work under Win.7)

    Thank for your Powersheel Solution (damn i need to learn Powershell :D )

    • Marked as answer by
      Leon Liu — MS
      Friday, November 19, 2010 6:02 AM

  • These answers are right, but didn’t work too smoothly for me on a 2008 R2 server. 

    If you just want to change a single image rather that updating the registry, then for a 2008 R2 box you need to replace this file:

    c:users<UserName>AppDataRoamingMicrosoftWindowsThemesTrancodedWallpaper.jpg

    and then for some reason I needed to run this command twice:

    rundll32.exe
    user32.dll, UpdatePerUserSystemParameters

    I was doing this with Powershell to automate a testbox setup after a CloneReplication job. What to check for though is the users «Themes» folder listed above encase it is named differently or you are using BMP files. if you are using PowerShell
    then you can find out the path and file name with:

    Get-ItemProperty -path ‘HKCU:Control PanelDesktop’ | Select -Property WallPaper

    Of course Cloud_TS has shown a good PowerShell Function to set that to whatever you want, which could be reshaped to centralise the WallPaper across multiple users or groups of users.

    I was looking for a simple swap and refresh and it was knowing the location and that I needed to run the
    rundll32.exe twice that was really slowing me down.

    Regards,

    Grae Hunter

    • Marked as answer by
      James_Patageul
      Sunday, August 27, 2017 1:38 PM

Некоторые пользователи, возможно, еще не обнаружили, что Microsoft предоставляет набор красочных обоев для своих операционных систем, и поэтому они никогда не экспериментируют с изменением стандартного фона. Мы всегда выбирали что-то, кроме фона по умолчанию, поэтому в этой статье мы поговорим о том, как это делается в Windows 10. Если вы хотите узнать, как изменить обои на рабочем столе, читайте дальше

1. Как установить картинку в качестве обоев рабочего стола в Windows 10, используя контекстное меню

Если вы хотите установить изображение в качестве фона рабочего стола в Windows 10, возможно, самый быстрый способ сделать это — использовать меню, вызываемое правой кнопкой мыши. Откройте проводник и перейдите к изображению, которое вы хотите использовать в качестве обоев. Затем щелкните правой кнопкой мыши или нажмите и удерживайте его и выберите «Установить в качестве фона рабочего стола» в меню.

Но что, если вы хотите также выбрать, как он заполняет ваш рабочий стол, или если вам не нужно только одно изображение? Что делать, если вы хотите иметь собственное слайд-шоу с несколькими изображениями из папки? Прочитайте остальную часть этого руководства, чтобы узнать, как получить доступ к дополнительным параметрам настройки обоев рабочего стола.

2. Как установить и настроить изображение в качестве обоев рабочего стола в Windows 10 с помощью приложения «Настройки»

Как и большинство вещей в Windows 10, вы также можете изменить обои на рабочем столе из приложения Настройки . Щелкните правой кнопкой мыши или коснитесь и удерживайте на рабочем столе, а затем выберите «Персонализация» в контекстном меню.

Предыдущее действие открывает приложение «Настройки» и мгновенно переносит вас в раздел «Фон» в настройках персонализации. Вот что вы должны увидеть:

ПРИМЕЧАНИЕ. В качестве альтернативы, вместо использования меню правой кнопки мыши на рабочем столе, вы также можете просто открыть приложение «Настройки» и перейти к «Персонализация» > «Фон».Справа на странице «Фон» вы можете увидеть небольшой предварительный просмотр того, как выглядит ваш рабочий стол с использованием текущих настроек, а затем ряд настроек, которые изменяют его внешний вид. Первый из них называется Background. Нажмите или коснитесь раскрывающегося списка « Фон» и выберите параметр «Изображение».

Прямо под настройкой «Фон» есть раздел «Выбор изображения», в котором Windows 10 показывает серию изображений, которые можно быстро установить в качестве обоев рабочего стола. Если вы хотите использовать один из них, нажмите или нажмите на него.

Если вы хотите использовать изображение, отличное от изображенного в списке, нажмите или нажмите кнопку «Обзор». Затем перейдите на ПК с Windows 10 и выберите изображение, которое вы предпочитаете использовать в качестве обоев.

Когда вы найдете тот, который вы хотите, выберите его и нажмите на кнопку «Выбрать изображение».

Как только вы это сделаете, Windows 10 установит новую картинку в качестве фона рабочего стола. Вы также можете увидеть, как выглядит ваш рабочий стол в фоновом режиме.

Как насчет настройки того, как изображение заполняет ваше экранное пространство? Прокрутите вниз на правой стороне окна фона. Затем нажмите или коснитесь раскрывающегося списка «Выберите подгонку» и выберите желаемое расположение изображения: «Заливка», «По размеру», «Растянуть», «Плитка», «Центр», «Размах».

Экспериментирование — лучший способ решить, какой из этих вариантов работает лучше всего. Вот что происходит:

  • Заливка увеличивает или уменьшает изображение, чтобы заполнить пространство на рабочем столе. Чтобы это произошло, изображения растягиваются или обрезаются.
  • Fit делает ваши изображения максимально большими, чтобы поместиться в доступном пространстве. Они не искажены и не обрезаны.
  • Растягивайте или растягивайте или сдавливайте изображение до тех же размеров, что и экран. Если размер вашего монитора не соответствует размеру изображения, это может выглядеть ужасно.
  • Плитка выводит ваше изображение на экран несколько раз, заполняя пространство, но оно может соответствовать или не соответствовать изображениям в пространстве.
  • Центр помещает ваше изображение в центр экрана. У вас может быть одно маленькое изображение в центре большого пустого пространства, или у вас может быть только центральная часть большого изображения.
  • Span создает область изображения на всех ваших дисплеях, если на вашем компьютере или устройстве установлено более одного изображения.

Если окажется, что ваше изображение не полностью заполняет экран, вы можете нажать «Изменить фоновый цвет *» и найти цвет, который соответствует вашему изображению, чтобы заполнить остальную часть экрана.

3. Как установить слайд-шоу с несколькими обоями для рабочего стола в Windows 10

Если вы хотите использовать более одного изображения в качестве обоев в Windows 10, откройте приложение «Настройки» и выберите «Персонализация» > «Фон». Затем нажмите или коснитесь раскрывающегося списка «Фон» и выберите «Слайд-шоу» из списка.

В следующем разделе, который называется «Выбор альбомов для слайд-шоу», нажмите или нажмите «Обзор».

Перейдите, чтобы выбрать папку с изображениями, которые вы хотите использовать на рабочем столе. Когда вы найдете его, выберите его и нажмите или нажмите «Выбрать эту папку».

Windows 10 сразу меняет фон рабочего стола, начиная показ слайдов с изображениями из выбранной вами папки. Обратите внимание, что вы можете использовать только одну папку. Если на вашем компьютере нет нужных изображений, вам нужно создать папку с изображениями, выбранными именно для этой цели.

По умолчанию выбранные вами изображения становятся слайд-шоу, которое изменяется с любым интервалом времени, который вы пожелаете. Используйте список «Изменить картинку каждый» и выберите желаемый промежуток времени. Если вы хотите, чтобы изображения воспроизводились в случайном порядке, нажмите или нажмите также на Shuffle.

Кроме того, если вы хотите отрегулировать положение обоев на рабочем столе, выполните те же действия, которые мы вам показали, чтобы установить изображение в качестве фона рабочего стола. По сути, все, что вам нужно сделать, — это щелкнуть или коснуться раскрывающегося списка «Выберите подгонку» и выбрать нужный вариант: «Заполнить», «Подогнать», «Растянуть», «Плитка», «Центр», «Размах».

Microsoft также собирает коллекции фонов, цветов окон, звуков и заставок в так называемые темы . Выбор одного из них — отличный способ начать настройку рабочего стола. Каждая тема имеет выбор обоев на выбор. Вы можете оставить только один, или позволить им играть как слайд-шоу.

Если вы хотите, чтобы фон вашего рабочего стола был установлен темой, которая вам нравится, вот как это сделать. Откройте приложение «Настройки» и перейдите к «Персонализация». Затем выберите «Темы» в левой части окна.

Прокрутите вниз, чтобы увидеть, какие темы доступны на вашем ПК или устройстве, и нажмите или нажмите на тему, которая вам подходит. Когда вы это сделаете, Windows 10 изменит ваши обои, цвета экрана, звуки и курсоры мыши на те, которые включены в эту тему.

СОВЕТ: Вы можете найти изображения, используемые в качестве обоев для стандартных тем Windows 10 в папке «C:WindowsWeb» на вашем ПК.

Поиграйте с доступными вариантами столько, сколько захотите. Если ни одна из встроенных тем вас не устраивает, у Microsoft есть замечательная коллекция, к которой вы можете обратиться, щелкнув или нажав на ссылку «Получить больше тем в Магазине Майкрософт», расположенную в начале списка тем.

После перехода по ссылке «Получить больше тем в Microsoft Store» вы перейдете в приложение Microsoft Store, где вы сможете скачать любую понравившуюся вам тему.

И это почти все, что вы можете сделать, чтобы персонализировать внешний вид вашего рабочего стола.

Какие ваши любимые обои для рабочего стола для Windows 10?

Нет причин использовать те же самые скучные обои, которые есть у всех. Изменение его в соответствии с вашими предпочтениями происходит быстро и просто, и его легко вернуть обратно к тому, что вы имели, если ни одно из новых изображений или тем не понравится вам. Поэкспериментируйте, и если вы обнаружите хорошую коллекцию изображений, являющихся общественным достоянием, из которых получатся хорошие обои, поделитесь ими в комментариях.

April 4 2011, 13:53

Category:

  • IT
  • Cancel

Программный способ смены фона рабочего стола

Бывают моменты, когда нам надо сменить изображение рабочего стола, но по каким-то неизвестным причинам это сделать не получается. Кроме того, любители программирования могут также задаться таким вопросом — можно ли сменить картинку рабочего стола с помощью программы? Ответ — можно. И сейчас мы это сделаем собственными силами, не прибегая к поиску программы в интернете и к ее скачиванию.

На самом деле всё просто до невозможности. Вся проблема заключается в том, что для сохранения рисунка в качестве фона рабочего стола необходимо прописать адрес рисунка в системном реестре, а потом сделать обновление реестра. Адрес изображения прописать можно и вручную, но вот обновление реестра не происходит, чтобы мы сразу могли любоваться нужным фоном.

Создаваемый нами скрипт на языке Visual Basic добавит информацию об адресе файла в реестр и обновит изменения в системе. Но для того, чтобы всё работало, нам нужно, чтобы изображение было только в формате bmp. Все необходимые файлы лучше разместить в одной папке. Начнем.

Создаем в выбранной нами папке текстовый файл. Затем добавляем в него следующий скрипт:

Set objWshShell = WScript.CreateObject(«Wscript.Shell»)
strPath2DestWallpaper = «*.bmp»
objWshShell.RegWrite «HKEY_CURRENT_USERControl PanelDesktopWallpaper», strPath2DestWallpaper, «REG_SZ»
objWshShell.Run «»»%SystemRoot%System32RUNDLL32.EXE»» user32.dll,UpdatePerUserSystemParameters», 0, True

В строке strPath2DestWallpaper = «*.bmp« вместо звёздочки вставляем путь к вашему изображению. Сохраняем наш текстовый документ в формате vbs. Например, wall.vbs

Открыть

Скрипт готов. Теперь можно его запустить. Однако, изменения рабочего стола будут до завершения сеанса пользователя. При последующей загрузке Windows вместо картинки на рабочем столе будет просто фоновый цвет. Чтобы это исправить, необходимо создать исполняемый файл, который и будет запускать наш скрипт.

Создаем в нашей папке текстовый документ и пишем в нем следующее:

wscript.exe //NOLOGO wall.vbs

 

Сохраняем документ с расширением .bat, например wall.bat. Далее создаем для него ярлык и кидаем этот ярлык в папку Автозагрузка. Вот и всё! Теперь при каждой загрузке Windows будет автоматически запускаться наш исполняемый файл. Не забудьте только, чтобы все три файла находились в одной папке.


В X Windows у меня был классный скрипт напоминания «беззвучный будильник», который менял цвет моего корневого окна (фона) на сплошной красный, всего за несколько секунд, прежде чем снова его менять. Есть ли способ сделать это для Windows XP?

Я думаю, что какая-то запланированная задача, которая использует cscript для установки ключей реестра ( HKEY_CURRENT_USERControl PanelDesktop). Однако мои попытки, похоже, не имеют никакого эффекта. Что мне нужно сделать, чтобы прочитать эти записи реестра и заново нарисовать рабочий стол?

Ответы:


Это меняет фон через командную строку. Просто сохраните это как файл летучей мыши. Используйте BMP или вам придется обновить. Также устанавливает обои, которые будут растягиваться. Если вы удалите линию обоев, она будет автоматически отцентрирована.

@echo off
reg add "HKCUcontrol paneldesktop" /v wallpaper /t REG_SZ /d "" /f 
reg add "HKCUcontrol paneldesktop" /v wallpaper /t REG_SZ /d "C:[LOCATION OF WALLPAPER HERE]" /f 
reg delete "HKCUSoftwareMicrosoftInternet ExplorerDesktopGeneral" /v WallpaperStyle /f
reg add "HKCUcontrol paneldesktop" /v WallpaperStyle /t REG_SZ /d 2 /f
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 
exit




Я думаю, что как только вы измените настройки обоев в реестре, вам просто нужно запустить

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 

из командной строки, и изменения должны вступить в силу. Вы должны убедиться, что ваше изображение является файлом BMP.

На самом деле, я просто попробовал это, создав bmp-файл размером с рабочий стол, который был красным. Я изменил ключ // HKCU / панель управления / рабочий стол / обои, чтобы он содержал полный путь к этому растровому изображению. Я выполнил указанную выше команду из командной строки, и рабочий стол изменился на красный bmp, который я только что создал



Вот один из вариантов. Создайте небольшое консольное приложение с SharpDevelop. Поместите этот код в Programs.cs. Я называю приложение «CWP»; Сменить обои. Требуется только один параметр в командной строке: имя файла. Протестировано на 64-битной Windows 7 Ultimate с файлом .bmp.

    /*
     * Created by SharpDevelop.
     * Date: 21.9.2012
     * Time: 16:13
     */
    using System;
    using System.Data;
    using System.Text;
    using System.Runtime.InteropServices;

    namespace cwp
    {

       class Program
        {
           [DllImport("user32.dll")]
           public static extern Int32 SystemParametersInfo(
               UInt32 action, UInt32 uParam, String vParam, UInt32 winIni);

            public static readonly UInt32 SPI_SETDESKWALLPAPER  = 0x14;
            public static readonly UInt32 SPIF_UPDATEINIFILE    = 0x01;
            public static readonly UInt32 SPIF_SENDWININICHANGE = 0x02;

            public static void SetWallpaper(String path)
            {
                Console.WriteLine("Setting wallpaper to '" + path + "'");
                SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path,
                    SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
            }

            public static void Main(string[] args)
            {
                if (args.Length >= 1)
                {
                    SetWallpaper( args[0] );
                }
            }
        }
    }


это не так круто, как на самом деле тратить время на написание кода, но есть довольно полезная системная утилита bginfo, которая встраивает информацию в фон рабочего стола. это довольно настраиваемый со всеми видами параметров командной строки. нет, я не писал это


Для Windows 7 это работает даже в ограниченных областях !! ;) Замените путь к вашему изображению

C: Users 1509967 Desktop hi.jpg

reg add "HKEY_CURRENT_USERcontrol paneldesktop" /v wallpaper /t REG_SZ /d "" /f
reg add "HKEY_CURRENT_USERcontrol paneldesktop" /v wallpaper /t REG_SZ /d C:Users1509967Desktophi.jpg /f
reg add "HKEY_CURRENT_USERcontrol paneldesktop" /v WallpaperStyle /t REG_SZ /d 2 /f
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
pause
exit


Метод реестра работает не всегда, особенно если картинка не в формате BMP, поэтому вы можете попробовать мой метод. Просто откройте нужное изображение с помощью окна просмотра фотографий Windows и используйте сочетание клавиш, чтобы установить изображение в качестве обоев рабочего стола.

Dim wShell
set wShell = createobject("Wscript.shell")
wShell.Run "cmd /c start " & Your photo path here,0,True

do
     wscript.sleep 100
loop until wShell.appactivate("Windows Photo Viewer") = true

wShell.Sendkeys  ("+{F10}")
WScript.Sleep 100
wShell.Sendkeys  "k"
wShell.Exec "taskkill /im dllhost.exe"

Это скрипт vbs, но вы можете использовать тот же метод, используя cmd


Независимо от того, что я пытался, я не мог надежно менять обои с помощью regedit и UpdatePerUserSystemParameters (даже с большими циклами), поэтому я использовал PowerShell, он работает каждый раз.

См. Https://www.joseespitia.com/2017/09/15/set-wallpaper-powershell-function/

Set-Wallpaper.ps1 :

# use powershell.exe Set-Wallpaper.ps1 -Image "<path to image>"

param ([string]$Image="")

Function Set-WallPaper($Image) {
<#
.SYNOPSIS
Applies a specified wallpaper to the current user's desktop

.PARAMETER Image
Provide the exact path to the image

.EXAMPLE
Set-WallPaper -Image "C:WallpaperDefault.jpg"

#>

Add-Type -TypeDefinition @" 
using System; 
using System.Runtime.InteropServices;

public class Params
{ 
    [DllImport("User32.dll",CharSet=CharSet.Unicode)] 
    public static extern int SystemParametersInfo (Int32 uAction, 
                                                   Int32 uParam, 
                                                   String lpvParam, 
                                                   Int32 fuWinIni);
}
"@ 

$SPI_SETDESKWALLPAPER = 0x0014
$UpdateIniFile = 0x01
$SendChangeEvent = 0x02

$fWinIni = $UpdateIniFile -bor $SendChangeEvent

$ret = [Params]::SystemParametersInfo($SPI_SETDESKWALLPAPER, 0, $Image, $fWinIni)
}

Set-WallPaper -Image $Image


Понравилась статья? Поделить с друзьями:
  • Как изменить фон рабочего стола в windows 10 на стандартный
  • Как изменить фон рабочего стола в windows 10 без прав администратора
  • Как изменить фон рабочего стола в windows 10 без активации ключа
  • Как изменить фон при запуске windows 10
  • Как изменить фон при загрузке windows 11