Вы можете попробовать следующий код для изменения курсора пользователя.
class Program
{
const int SPI_SETCURSORS = 0x0057;
const int SPIF_UPDATEINIFILE = 0x01;
const int SPIF_SENDCHANGE = 0x02;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, String pvParam, SPIF fWinIni);
[Flags]
public enum SPIF
{
None = 0x00,
/// <summary>Writes the new system-wide parameter setting to the user profile.</summary>
SPIF_UPDATEINIFILE = 0x01,
/// <summary>Broadcasts the WM_SETTINGCHANGE message after updating the user profile.</summary>
SPIF_SENDCHANGE = 0x02,
/// <summary>Same as SPIF_SENDCHANGE.</summary>
SPIF_SENDWININICHANGE = 0x02
}
static void Main(string[] args)
{
Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\Cursors\", "Arrow", "D:\\arrow_rl.cur");
SystemParametersInfo(SPI_SETCURSORS, 0, null, SPIF.SPIF_UPDATEINIFILE| SPIF.SPIF_SENDCHANGE);
}
}
Кроме того, вы можете найти файл курсора в пути 'C: \ Windows \ Cursors'.
Следующая картинка - мой результат тестирования, вы можете видеть, что курсор был изменен.
![enter image description here](https://i.stack.imgur.com/CrjUK.gif)