Możliwe, że gdy jesteś na koncie A, to sprawdzasz czułość myszy z konta A, czyli że patrzysz na ustawienia myszy, które są przypisane do konta A. Natomiast, gdy wchodzisz na konto B, to zamiast sprawdzić ustawienia z konta B, sprawdzasz ustawienia z konta A będąc na koncie B.
Najpierw wpisz polecenie "whoami" do PowerShell, to pokaże na jakim użytkowniku jesteś i wykonaj polecenia poniżej. Następnie przeloguj się na innego użytkownika i wpisz ponownie "whoami", jeśli rzeczywiście jesteś na innym użytkowniku wykonaj ponownie polecenia poniżej.
Na koncie A uruchom poniższy skrypt w PowerShell oraz na koncie B.
$CSharpSig = @'
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(
uint uiAction,
uint uiParam,
out uint pvParam,
uint fWinIni);
'@
$CursorRefresh = Add-Type -MemberDefinition $CSharpSig -Name WinAPICall5 -Namespace SystemParamInfo -PassThru
[uint32]$ab90 = 0
$CursorRefresh::SystemParametersInfo(0x0070,0,[ref]$ab90,0)
Jeśli dostaniesz różne wartości i jeśli rzeczywiście masz zmienioną czułość szybkości myszy, to znaczy, że na dwóch kontach masz różne ustawienia.
https://devblogs.microsoft.com/scripting/use-powershell-to-change-the-mouse-pointer-scheme/
Żeby zmienić szybkość myszy na chyba default - czyli na domyślne ustawienia, żeby było na 50%, to wklej poniższy kod do PowerShella, kod poniższy różni się od powyższego, więc skopiuj całość (w poniższej sygnaturze nie ma "out").
$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 WinAPICall6 -Namespace SystemParamInfo -PassThru
[uint32]$ab90 = 0xA
$CursorRefresh::SystemParametersInfo(0x0071,0,$ab90,0)
Możesz także dwie funkcjonalności ułożyć w całość.
Add-Type -TypeDefinition '
using System.Runtime.InteropServices;
public class SetWinAPICall
{
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(
uint uiAction,
uint uiParam,
uint pvParam,
uint fWinIni
);
}
public class GetWinAPICall
{
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(
uint uiAction,
uint uiParam,
out uint pvParam,
uint fWinIni
);
}
'
I wtedy odczyt jest pod
[UInt32]$speed = 0
[GetWinAPICall]::SystemParametersInfo(
0x0070,
0,
[ref]$speed,
0
)
, a zapis pod
[UInt32]$speed = 0xA
[SetWinAPICall]::SystemParametersInfo(
0x0071,
0,
$speed,
0)
Oczywiście dla zapisu, czyli [SetWinAPICall]... możesz ustawić inną wartość niż 0xA, np. 0x10, czy nawet 0x14. O ile się nie mylę, to 0x14 to maksymalna wartość, która jest w ustawieniach dla szybkości wskaźnika myszy.
0xA - 10, 0x10 - 16, 0x14 - 20 Ogólnie wartości dostępne dla zapisu, to chyba od 0 do 20. Nie wiem, czy muszą iść co 2 tak jak jest w ustawieniach w panelu sterowania.