это работает для меня:
<!-- : --- Self-Elevating Batch Script ---------------------------
@whoami /groups | find "S-1-16-12288" > nul && goto :admin
set "ELEVATE_CMDLINE=cd /d "%~dp0" & call "%~f0" %*"
cscript //nologo "%~f0?.wsf" //job:Elevate & exit /b
-->
<job id="Elevate"><script language="VBScript">
Set objShell = CreateObject("Shell.Application")
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objWshProcessEnv = objWshShell.Environment("PROCESS")
strCommandLine = Trim(objWshProcessEnv("ELEVATE_CMDLINE"))
objShell.ShellExecute "cmd", "/c " & strCommandLine, "", "runas"
</script></job>
:admin -----------------------------------------------------------
:: administrator commands here
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /f /t REG_SZ /d "c:\images\bella.jpg"
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
exit
часть этого кода не была создана мной. этот командный скрипт запускает все команды после комментария: administrator commands here
, как администратор, и использует этот путь, чтобы найти изображение: c:\images\bella.jpg
если этот скрипт не работает, проверьте его.
Я не думаю, что это работает на Vista.
проверено на выигрыш 7 и 8.
Смотрите, если [это] (http://stackoverflow.com/a/22344255/2861476) может помочь. –
Не могли бы вы [отформатировать свой код] (http://meta.stackoverflow.com/questions/251361/how-do-i-format-my-code-blocks)? –
Возможный дубликат [Как изменить обои с помощью партии] (http://stackoverflow.com/questions/20093278/how-to-change-wallpaper-using-batch) – LotPings