ด้วยการทดลองมากมายทำให้ฉันจัดการกับรูปแบบของค่า Registry นั้นมากขึ้นหรือน้อยลง (ดูรายละเอียดด้านล่าง)
ฉันสร้างสคริปต์ PowerShell นี้:
Function Set-BlueLightReductionSettings {
[CmdletBinding()]
Param (
[Parameter(Mandatory=$true)] [ValidateRange(0, 23)] [int]$StartHour,
[Parameter(Mandatory=$true)] [ValidateSet(0, 15, 30, 45)] [int]$StartMinutes,
[Parameter(Mandatory=$true)] [ValidateRange(0, 23)] [int]$EndHour,
[Parameter(Mandatory=$true)] [ValidateSet(0, 15, 30, 45)] [int]$EndMinutes,
[Parameter(Mandatory=$true)] [bool]$Enabled,
[Parameter(Mandatory=$true)] [ValidateRange(1200, 6500)] [int]$NightColorTemperature
)
$data = (2, 0, 0, 0)
$data += [BitConverter]::GetBytes((Get-Date).ToFileTime())
$data += (0, 0, 0, 0, 0x43, 0x42, 1, 0)
If ($Enabled) {$data += (2, 1)}
$data += (0xCA, 0x14, 0x0E)
$data += $StartHour
$data += 0x2E
$data += $StartMinutes
$data += (0, 0xCA, 0x1E, 0x0E)
$data += $EndHour
$data += 0x2E
$data += $EndMinutes
$data += (0, 0xCF, 0x28)
$tempHi = [Math]::Floor($NightColorTemperature / 64)
$tempLo = (($NightColorTemperature - ($tempHi * 64)) * 2) + 128
$data += ($tempLo, $tempHi)
$data += (0xCA, 0x32, 0, 0xCA, 0x3C, 0, 0)
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.bluelightreduction.settings\Current' -Name 'Data' -Value ([byte[]]$data) -Type Binary
}
ที่จะใช้บันทึกเป็น.ps1
ไฟล์และปฏิบัติตามคำแนะนำในส่วนของการเปิดใช้งานสคริปต์ของแท็กวิกิพีเดีย PowerShell จากนั้นคุณสามารถนำเข้าเนื้อหาของสคริปต์โดยการจัดหาดอท:
. ./bluelightmanagement.ps1
จากนั้นใช้ฟังก์ชั่นที่คล้ายกับ cmdlet:
Set-BlueLightReductionSettings -StartHour 7 -StartMinutes 0 -EndHour 21 -EndMinutes 15 -Enabled $true -NightColorTemperature 6000
แอพตั้งค่าจะอัพเดตทุกอย่าง (ยกเว้นแถบเลื่อนสี) ทันทีหากคุณเปิดหน้าการลดแสงสีฟ้าเมื่อคุณเรียกใช้คำสั่ง
รูปแบบ
- 4 ไบต์คงที่ - ดูเหมือนเป็นลายเซ็นต์ทั่วไปสำหรับ
CloudStore
ค่าทั้งหมด
- เวลาที่แก้ไขล่าสุดของการตั้งค่าเป็นค่า 64 บิต
FILETIME
(8 ไบต์, endian น้อย)
- 8 ไบต์คงที่มากขึ้น
- ไบต์
2
แล้ว1
ถ้าคุณสมบัติการลดแสงสีฟ้าถูกเปิดใช้งานไปเพียงแค่ถ้าเป็นคนพิการ
- 3 ไบต์คงที่มากขึ้น
- ชั่วโมงเริ่มต้นของเวลา (1 ไบต์)
- 1 ไบต์คงที่
- นาทีเริ่มต้นของเวลา (1 ไบต์)
- 4 ไบต์คงที่
- เวลาสิ้นสุดของชั่วโมง (1 ไบต์)
- 1 ไบต์คงที่
- นาทีสุดท้ายของเวลา (1 ไบต์)
- 3 ไบต์คงที่
- อุณหภูมิสีในเวลากลางคืนในเคลวินหลังจากคณิตศาสตร์เลขฐานสองแปลก ๆ (2 ไบต์)
- 7 ไบต์คงที่
อุณหภูมิสีจะถูกเก็บไว้เป็นสองไบต์ใน endian น้อย หนึ่งค่าที่สูงคือส่วนจำนวนเต็มของผลลัพธ์ของการหารอุณหภูมิด้วย 64 ไบต์ที่มีค่าต่ำคือส่วนที่เหลือคูณด้วยสองจากนั้นเพิ่มเป็น 128 เมื่อต้องการคำนวณอุณหภูมิจากไบต์ให้คูณไบต์ที่สูงด้วย 64 และเพิ่มสิ่งที่คุณได้รับเมื่อคุณหารด้วยสองความแตกต่างระหว่างไบต์ต่ำกับ 128