Изменение времени на двойной клик мыши в Windows.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Ефрейтор
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 11.02.2005 (Пт) 12:43
Откуда: Алтай

Изменение времени на двойной клик мыши в Windows.

Сообщение Ефрейтор » 03.09.2006 (Вс) 20:09

Люди добрые, здраствуйте.
Дело вот в чём. Изменяю настройки реестра

Код: Выделить всё

Dim DoubleClickRegistry As Microsoft.Win32.RegistryKey
DoubleClickRegistry = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\Mouse", True)
DoubleClickRegistry.SetValue("DoubleClickSpeed", "1")


Все вроде просто. Но после выполнения кода время отводимое Windows на двойной клик реально не изменилось :? .
Так же реальное время двойного клика не изменяется если тупо зайти в реестр и поменять значение на 1 милисекунду для двойного клика мыши.
Но если после изменения в реестре времени двойного клика на 1 милисекунду зайти:
Пуск/Настройка/Панель управления/Мышь
и нечего не меняя в окне свойств мыши, просто нажать "Ok", то настройка времени 1 милисекунда начнёт действовать.
Как заставить программно изменить реальное поведение мыши в соответствии с заданым значением времени на двойной клик в реестре?

Заранее благодарен.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.09.2006 (Вс) 20:22

Во-первых, менять этот параметр надо не реестром, а через SystemParametersInfo. Во-вторых, за самовольное изменение параметров системы афтарам программ надо отрывать ручки.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Klinifini
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 23.08.2006 (Ср) 17:37

Сообщение Klinifini » 03.09.2006 (Вс) 20:45

перезагрузить компьютер :P

Ефрейтор
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 11.02.2005 (Пт) 12:43
Откуда: Алтай

Сообщение Ефрейтор » 04.09.2006 (Пн) 4:55

GSerg
Согласен, что в реестре исправлять не хорошо, просто задача спецефическая и край нужно уменьшить время двойного клика мыши.
Как я понял SystemParametersInfo это API Windows. К сожалению документов в иннете я не смог найти как добраться до времени двойного клика через API Windows. :oops: Единственное что я смог найти на эту тему это строка:
Код: Выделить всё
Declare Function SystemParametersInfo Lib "User" (ByVal uAction As Integer, ByVal uparam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer

Но как этим всем пользоваться моего интелекта не хватило.

Может кто небольшой примерчик продемонстрирует как добраться до времени двойного клика через SystemParametersInfo ?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 04.09.2006 (Пн) 7:12

Константа SPI_SETDOUBLECLICKTIME (значение константы автор найдет сам) спасет автора и, возможно, демократию. Также все вышеуказанное спасает функция SetDoubleClickTime, ну и на всякий случай GetDoubleClickTime.
Весь мир матрица, а мы в нем потоки байтов!

Ефрейтор
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 11.02.2005 (Пт) 12:43
Откуда: Алтай

Сообщение Ефрейтор » 04.09.2006 (Пн) 7:37

Вот нашёл.
Правда не через SystemParametersInfo:
Код: Выделить всё
Private Declare Function SetDoubleClickTime Lib "user32" (ByVal wCount As Long) As Long


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim s As Long
        s = SetDoubleClickTime(1)
    End Sub


Всем спасибо.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 04.09.2006 (Пн) 7:47

Правда декларация то неправильная. Меняй Long на Integer.
Весь мир матрица, а мы в нем потоки байтов!

Ефрейтор
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 11.02.2005 (Пт) 12:43
Откуда: Алтай

Сообщение Ефрейтор » 05.09.2006 (Вт) 5:19

Ещё вопросик по поводу двойного клика. Можно его через Win API на заблокировать на время?


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

    TopList