Загрузка данных


# set-mouse-sensitivity-1.ps1
# Скорость указателя Windows: 1 = минимум, 10 = по умолчанию, 20 = максимум

$sensitivity = 1

if ($sensitivity -lt 1 -or $sensitivity -gt 20) {
    throw "MouseSensitivity должен быть от 1 до 20"
}

$regPath = "HKCU:\Control Panel\Mouse"
Set-ItemProperty -Path $regPath -Name "MouseSensitivity" -Value $sensitivity -Type String

# Применить без выхода из системы
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class MouseSettings {
    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, IntPtr pvParam, uint fWinIni);
}
"@

$SPI_SETMOUSESPEED = 0x0071
$SPIF_UPDATEINIFILE = 0x01
$SPIF_SENDCHANGE = 0x02

$ok = [MouseSettings]::SystemParametersInfo(
    $SPI_SETMOUSESPEED,
    0,
    [IntPtr]$sensitivity,
    $SPIF_UPDATEINIFILE -bor $SPIF_SENDCHANGE
)

if (-not $ok) {
    Write-Warning "Реестр обновлён, но SystemParametersInfo не применил скорость. Перезайдите в систему или подвигайте ползунок в Параметрах."
} else {
    Write-Host "Чувствительность мыши установлена на $sensitivity"
}