Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Создание справочника Windows API

Страница: 1 |

 

  Вопрос: Установка времени двойного клика мыши. Добавлено: 04.09.06 06:17  

Автор вопроса:  Миха
Привет всем.
Требуется программно на VB.NET изменить время на двойной клик мыши в винде. Единственное что смог найти это:


Declare Function SystemParametersInfo Lib "User" (ByVal uAction As Integer, ByVal uparam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer


но как этим пользоваться ума не приложу.
Может кто поможет небольшим конкретным примером как всё же изменить время двойного клика.

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

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #1 Добавлено: 16.09.06 08:01
Начнем с того, что декларация неправильная. Правильная:
Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByRef lpvParam As Integer, ByVal fuWinIni As Integer) As Integer
Public Const SPI_SETDOUBLECLICKTIME As Integer= 32


Использование элементарно:
SystemParametersInfo(SPI_SETDOUBLECLICKTIME, tTime,0,0)


где tTime - время двойного клика в миллисекундах.

Еще проще поюзать функции SetDoubleClickTime и GetDoubleClickTime:

Public Declare Function SetDoubleClickTime Lib "user32" (ByVal wCount As Integer) As Integer
Public Declare Function GetDoubleClickTime Lib "user32" () As Long


Первая устанавливает время двойного клика, вторая соответственно возвращает. В VB.NET кстати есть более простой способ получить время двойного клика - использование расшареного свойства DoubleClickTime класса SystemInformation. Однако метода для установки нет.




Ответить

Номер ответа: 2
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #2 Добавлено: 16.09.06 08:02
Поправка:

вместо

Public Declare Function GetDoubleClickTime Lib "user32" () As Long


должно быть

Public Declare Function GetDoubleClickTime Lib "user32" () As Integer

Ответить

Номер ответа: 3
Автор ответа:
 ANALYST



Вопросов: 3
Ответов: 12
 Профиль | | #3 Добавлено: 22.09.10 11:30
  1. Imports System.Runtime.InteropServices
  2.  
  3. Module Module1
  4.  
  5.     Declare Function SetDoubleClickTime Lib "user32.dll" (ByVal uInterval As UInteger) As Boolean
  6.     Declare Function GetDoubleClickTime Lib "user32.dll" () As Integer
  7.  
  8.     Public Const SPI_SETDOUBLECLICKTIME As Integer = 500
  9.  
  10.     Sub Main()
  11.         Dim args() As String
  12.         args = GetCommandLine()
  13.         If args.Length > 1 Then
  14.             If IsNumeric(args(1)) = True Then
  15.                 SetDoubleClickTime(args(1))
  16.             End If
  17.         End If
  18.         Console.WriteLine(GetDoubleClickTime().ToString)
  19.     End Sub
  20.  
  21.     Function GetCommandLine(Optional ByVal MaxArgs As Integer = 255)
  22.         'пример передачи аргументов командной строки в функцию,
  23.         'которая возвращает их в переменной типа Variant, содержащей массив
  24.         'состоящий из всех этих параметров
  25.  
  26.         'объявляем переменные
  27.         Dim C, CmdLine, CmdLnLen, InArg, I, NumArgs
  28.         Dim ArgArray() As String
  29.  
  30.         'задание корректной размерности массива
  31.         ReDim ArgArray(MaxArgs)
  32.         'инициализация переменных
  33.         NumArgs = 0 : InArg = False
  34.         'получаем аргументы командной строки и
  35.         'определяем количество символов в строке
  36.         CmdLine = Command()
  37.         CmdLnLen = CmdLine.Length
  38.         'анализ всех символов командной строки
  39.         For I = 1 To CmdLnLen
  40.             C = Mid(CmdLine, I, 1)
  41.             'проверка наличия пробела или табуляции
  42.             If (C <> " " And C <> vbTab) Then 'пробел и табуляция не обнаружены
  43.                 'проверка наличия аргумента
  44.                 If Not InArg Then 'Начало нового аргумента
  45.                     'проверка количества аргументов
  46.                     If NumArgs = MaxArgs Then Exit For
  47.                     NumArgs = NumArgs + 1
  48.                     InArg = True
  49.                 End If
  50.                 'добавляем символ к текущему аргументу
  51.                 ArgArray(NumArgs) = ArgArray(NumArgs) & C
  52.             Else
  53.                 'если найден символ пробела или табуляции,
  54.                 'устанавливаем флаг InArg flag в False
  55.                 InArg = False
  56.             End If
  57.         Next I
  58.         'меняем размер массива
  59.         ReDim Preserve ArgArray(NumArgs)
  60.         'возвращаем массив
  61.         GetCommandLine = ArgArray
  62.     End Function
  63. End Module

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам