win10如何改变登陆界面背景

==> 学习汇总(持续更新)
==> 从零搭建后端基础设施系列(一)-- 背景介绍


因为win10没有直接可以修改登录背景的UI界面,所以只能修改UI代码.

1.新建一个txt文本,然后复制如下代码进去,其中第三行$replacementPath就是你要替换的背景图路径,可以是绝对也可以是相对,最后把后缀名改成.ps1,名字随便起.

$priPath = "$env:windir\SystemResources\Windows.UI.Logon\Windows.UI.Logon.pri"
$outputPath = ".\Windows.UI.Logon.pri"
$replacementPath = ".\chuyin.jpg"
 
$inputStream = [System.IO.File]::OpenRead($priPath)
$outputStream = [System.IO.File]::Create($outputPath)
$replacementStream = [System.IO.File]::OpenRead($replacementPath)
 
$inputReader = New-Object System.IO.BinaryReader -ArgumentList $inputStream
$outputWriter = New-Object System.IO.BinaryWriter -ArgumentList $outputStream
 
$inputStream.CopyTo($outputStream)
 
$replacementLengthAligned = ([Math]::Ceiling($replacementStream.Length / 8) * 8)
 
# header
$inputStream.Seek(0x14, "Begin") | Out-Null
$headerLength = $inputReader.ReadUInt32()
$inputStream.Seek(0xB8, "Begin") | Out-Null
$dataitemOffset = $inputReader.ReadUInt32()
$origDataitemLength = $inputReader.ReadUInt32()
$dataitemLength = $origDataitemLength + $replacementLengthAligned
$outputStream.Seek(0xBC, "Begin") | Out-Null
$outputWriter.Write([int]$dataitemLength)
 
# dataitem
$outputStream.Seek($headerLength + $dataitemOffset + 0x18, "Begin") | Out-Null
$outputWriter.Write([int]$dataitemLength)
$inputStream.Seek($headerLength + $dataitemOffset + 0x24, "Begin") | Out-Null
$stringCount = $inputReader.ReadUInt16()
$blobCount = $inputReader.ReadUInt16()
$origDataLength = $inputReader.ReadUInt32()
$outputStream.Seek(0xC, "Current") | Out-Null
$outputWriter.Write([int]($origDataLength + $replacementLengthAligned))
$outputStream.Seek($stringCount * 4, "Current") | Out-Null
for ($i = 0; $i -lt 10; $i++)
{
    $outputWriter.Write($origDataLength)
    $outputWriter.Write([int]$replacementStream.Length)
}
$outputStream.Seek(($blobCount - 10) * 8, "Current") | Out-Null
 
# data
$outputStream.Seek($origDataLength, "Current") | Out-Null
if ($outputStream.Length - $outputStream.Position -ne 0x18)
{
    Write-Error "Not compatible with this PRI file."
}
$replacementStream.CopyTo($outputStream)
 
# footer
$outputStream.Seek($replacementLengthAligned - $replacementStream.Length, "Current") | Out-Null
$outputWriter.Write(0xDEF5FADE)
$outputWriter.Write([int]$dataitemLength)
$outputWriter.Write(0xDEFFFADE)
$outputWriter.Write(0x00000000)
$outputWriter.Write([char[]]"mrm_pri2")
 
$outputStream.Seek(0xC, "Begin") | Out-Null
$outputWriter.Write([int]$outputStream.Length)
$outputStream.Seek(-0xC, "End") | Out-Null
$outputWriter.Write([int]$outputStream.Length)
 
$inputReader.Close()
$outputWriter.Close()
$replacementStream.Close()

改完后如图:

2.右键单击login,选择使用PowerShell运行
如图:

运行后会生成一个一个.pri格式的文件,如图:

然后复制到C:\Windows\SystemResources\Windows.UI.Logon目录下,替换同名文件即可。注意,最好备份一下那个文件,省得出什么问题。

这里要注意的是必须先获取到Windows.UI.Logon文件夹的权限才能替换文件。

替换成功后,win+L打开登陆界面即可看到更换后的壁纸。

如图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值