Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Изменить схему указателя мыши программно / 4 сообщений из 4, страница 1 из 1
17.03.2014, 14:59
    #38588325
Sanprof
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить схему указателя мыши программно
Здравствуйте, вот приходится за день n-раз менять схему указателя мыши (так понадобилось менять с Default на Юзерскую и обратно, зачем - это отдельная история), я бы хотел в трее иконку, чтобы ПКМ нажать и выбрать из списка, на данном этапе меня интересует функция, наверно API, с помощью которой можно установить схему по имени или еще по какому нибудь параметру. На скрине параметр который я хочу программно менять


...
Рейтинг: 0 / 0
17.03.2014, 15:02
    #38588327
Sanprof
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить схему указателя мыши программно
если не видно картинку, чего-то она маленькая получилась

...
Рейтинг: 0 / 0
17.03.2014, 15:40
    #38588385
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить схему указателя мыши программно
Sanprof, отдельной API функции для этого нет. Тебе нужно будет 1) обновить информацию в реестре 2) вызвать API функцию SystemParametersInfo с параметром SPI_SETCURSORS чтобы заставить Windows принять эти настройки. Вот примеры на PowerShell и AutoHotKey которые нетрудно будет перевести на .NET
...
Рейтинг: 0 / 0
17.03.2014, 16:22
    #38588461
Sanprof
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить схему указателя мыши программно
bazileSanprof, отдельной API функции для этого нет. Тебе нужно будет 1) обновить информацию в реестре 2) вызвать API функцию SystemParametersInfo с параметром SPI_SETCURSORS чтобы заставить Windows принять эти настройки. Вот примеры на PowerShell и AutoHotKey которые нетрудно будет перевести на .NET

Спасибо за ссылки, про AutoHotKey я как раз читал до вашего коммента, попалась ссылка в гугл. Вот что получилось

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, uint pvParam, uint fWinIni);

const int SPI_SETCURSORS = 0x0057; 
const int SPIF_UPDATEINIFILE = 0x01; 
const int SPIF_SENDCHANGE = 0x02; 

private void ChangeCursor(string curFile)
{
    Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\Cursors\", "Arrow", curFile);
    SystemParametersInfo(SPI_SETCURSORS, 0, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 
}  



Пример использования кода
Код: c#
1.
ChangeCursor(@"C:\MyCursor.cur");



Конечно этот код не меняет схему, но мне достаточно менять только курсор Arrow. На этом этапе мой вопрос решен.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Изменить схему указателя мыши программно / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]