| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Управление курсорам мыши |
| Автор: Kirill89 28.1.2007, 22:21 |
| В windows в настройках есть параметр скорость курсора мыши, как узнать его текущее состояние и как его поменять? |
| Автор: Akina 29.1.2007, 10:49 |
| Вычитать или изменить через WMI. Читай описание Win32_ классов... Простого способа нет. |
| Автор: Kirill89 30.1.2007, 15:15 | ||
Предположим, возможно можно написать свой алгоритм, который замедлит мышь? Если есть идеи по этому поводу... Мне так даже лучше) А вот если других, более лёгких, вариантов нет: ЧТо такое WML? Как с этим работать? Где взять описание Win32_ классов? |
| Автор: Кирилл 30.1.2007, 16:01 |
| 1) На MousMove повесить перемещение объекта, который будет заменять курсор 2) При приближении реального курсора к границе экрана, кидать его в центр Конечно реальный курсор лучше убрать. |
| Автор: Kirill89 30.1.2007, 22:48 | ||
Да, идея неплохая, но "лже курсор" не будет работать с windows - приложениями... Мне всё-же хотелость бы примера, как работать со стандартными средствами... |
| Автор: Akina 31.1.2007, 10:07 |
| WMI == Windows Management Instrumentation - офигенный раздел в MSDN. К счастью, поиск рулит. Особенно если либа поставлена локально. |
| Автор: Kirill89 31.1.2007, 11:15 |
Ага, я этим похвастаться не могу... Ладно, я тогда думать буду, пожалуйста, если у кого будут идеи, пишите! Мне очень нужна эта опция! Напоминаю, вопрос был в том, как через средства windows замедлить скорость передвижения курсора по экрану. Заранее благодарю. |
| Автор: Kirill89 2.2.2007, 21:21 |
| Я везде искал ответ, и ..... увы ничего... У меня появилась бредовая идея, подскажите, это реально осуществить: Сделать вставку на ассемблере которая меняет параметр дравера мыши в оперативной памяти Звучит жудковато... |
| Автор: bom 2.2.2007, 22:32 |
| Копай АПИ SystemParametersInfo http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&article=2454&spider_enabled= код на С++ Там чувствительность и есть скорость. Значение (от1 до 20) хранится в строке MouseSensitivity, HKEY_CURRENT_USER\Control Panel\Mouse. Можно поменять параметр в реестре, но для применения необходима перезагрузка Винды. Поэтому лучше через SystemParametersInfo. ЗЫ. Не забудь показать код VB, когда решишь задачу, ибо интересно |
| Автор: Kirill89 2.2.2007, 23:09 |
| Большое спасибо! Мне на С++ тоже должен подойти... Попробую тогда работать через параметр, отсылаемый программе на С, которая устанавливает этот параметр в качастве скорости мыши. Буду надеятся, что получится. Конечно было-бы проще сделать вставку C++ в VB. Есть такая возможность? В кончном итоге переписать код на С в код на VB сложновато, но я попытаюсь... Кто может что-либо предложить, буду только рад. |
| Автор: Kirill89 9.2.2007, 00:53 |
| Так, народ, этот код на С++ непашет вообще! я его перелопатил в доль и поперёк! |
| Автор: Akina 9.2.2007, 15:36 | ||
bom прав:
Или поищи в MSDN в Technical Articles статью "Programming Mouse and Keyboard with DirectInput 3.0" |
| Автор: Kirill89 9.2.2007, 22:42 |
| Да, bom действительно прав, но только почему код на С++ не работает?! Я его ещё немного пошерстил, пишет скорость =1 потом указываю новое значение пишет скорость = , ну скажем , 10... только ничего не меняется... |
| Автор: Kirill89 9.2.2007, 23:33 |
| Хорошо, у меня есть ещё идея: можно через реестор, а потом его обновить. Я слышал, что как-то можно через rundl32 обновить (через параметр)... никто незнает как? |
| Автор: Kirill89 11.2.2007, 02:02 | ||||||
| Всё! Получилось! Всем, кто помогал - большое спасибо! Публикую что и как: Модуль:
Для чтения текущего значения скорости:
Для установки нового значения скорости:
|
| Автор: bom 11.2.2007, 11:12 | ||
| Это + Поздравляю! Код на С++ действительно не рабочий, там константа SPI_SETMOUSE (4) не правильная. Добавлено @ 11:25 Вернее она правильная, только для изменения MouseSpeed, MouseThreshold1, MouseThreshold2, но не для MouseSensitivity (которая и отвечает за скорость). Да, еще надо константу SPIF_UPDATEINIFILE добавить, иначе реестр не обновится и после перезагрузки Винды скорость вернется к предыдущему значению.
|
| Автор: Kirill89 11.2.2007, 18:33 |
| Предлагаю добавить это всё в faq, и подправить faq C++. |
| Автор: cardinal 11.2.2007, 22:55 |
| Как будет готово - скажите. Я добавлю в FAQ по VB. |
| Автор: Kirill89 12.2.2007, 03:18 |
Так вроде всё готово. Надо как-то оформить по faq'овски? |
| Автор: cardinal 12.2.2007, 03:20 |
| Ага. В принципе также, как и другие темы там оформлены... Чтобы было в одном сообщении видно, что поместить в FAQ (я ведь не могу во все темы углубляться). Спасибо! |
| Автор: Kirill89 12.2.2007, 20:28 | ||||||
| Для изменения скорости курсора мыши или получения её текущего значения 1) Модуль:
2) Для получения текущего значения скорости курсора:
3) Для установки нового значения скорости курсора:
|
| Автор: cardinal 13.2.2007, 02:52 |
| http://vingrad.ru/VB-VB-003091 http://vingrad.ru/VB-VB-003092 http://vingrad.ru/VB-VB-003093 Kirill89 + |
| Автор: Kirill89 13.2.2007, 04:31 |
| Всем большое спасибо! Вопрос решен! |
| Автор: cardinal 13.2.2007, 04:38 |
| Ну типа того. Да спасибо забыл сказать. Спасибо! |