Я написал код ниже, чтобы повлиять (как мне кажется) на единственные клавиши reg, отвечающие за размер курсора и указателя в Windows 10.
Вот код, который у меня есть до сих пор (Некоторые дополнительные комментарии в пределах):
$RegConnect = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]"CurrentUser", "$env:COMPUTERNAME")
$RegCursorsAccess = $RegConnect.OpenSubKey("Software\Microsoft\Accessibility", $true)
$RegCursorsControlPanel = $RegConnect.OpenSubKey("Control Panel\Cursors", $true)
# In the code below I'm trying to change the size of the cursor.
$RegCursorsControlPanel.SetValue("CursorBaseSize", 48)
$RegCursorsAccess.SetValue("CursorSize", 3)
$RegCursorsAccess.Close()
$RegConnect.Close()
# This section is where I thought it would update the cursor size.
# Here is where it lists stuff relating to setting and updating any settings changed.
# https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfoa
# SPI_SETCURSORS
# 0x0057
# Reloads the system cursors. Set the uiParam parameter to zero and the pvParam parameter to NULL.
$CSharpSig = @'
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(
uint uiAction,
uint uiParam,
uint pvParam,
uint fWinIni);
'@
$CursorRefresh = Add-Type -MemberDefinition $CSharpSig -Name WinAPICall -Namespace SystemParamInfo -PassThru
$CursorRefresh::SystemParametersInfo(0x0057,0,$null,0)
Это изменит правильные значения в реестре.
Так что, если я буду запускать этот код PowerShell, размер мыши в удобстве доступа настройка имеет правильное значение.
Но курсор не обновляется.
Как можно принудительно выполнить обновление без выхода из системы и повторного входа в систему или перезапуска аппарата.
Вот несколько связанных ссылок MS:
WM_SETTINGCHANGE сообщение
Функция SystemParametersInfoA
РЕДАКТИРОВАТЬ - Некоторая дополнительная информация
Если я запускаю Process Monitor из Sysinternals и копаю там глубоко, я это можно увидеть в сводке стека.
Это может привести кого-то более знающего, чем мне найти, как обновить размер мыши.
Секция HKCU\Control Panel\Cursors\(Default)
SettingsHandlers_nt.dll
И это также для раздела доступности. Windows.UI.Accessibility.dll
Вот настройки, которые я использовал в фильтре мониторов процесса, чтобы сузить элементы.