Изменить курсор пользователя на C# - PullRequest
0 голосов
/ 31 марта 2020

Я хочу изменить курсор пользователя на C#. Но это не в форме this.Cursor. Я хочу изменить глобальный курсор . Я искал, но не мог найти ответ. Я жду ваших ответов.

1 Ответ

0 голосов
/ 01 апреля 2020

Вы можете попробовать следующий код для изменения курсора пользователя.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...