# 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"
}