Trucos Saber si el equipo tiene ratón y cuántos botones tiene

Declaramos en un módulo :

Declare Function GetSystemMetrics Lib "user32" Alias _
"GetSystemMetrics" (ByVal nIndex As Long) As Long

Public Const SM_CMOUSEBUTTONS = 43

Para saber cuántos botones tiene el ratón :

dim numero as long
numero = GetSystemMetrics(SM_CMOUSEBUTTONS)

Si numero es 0 es que no hay ratón (otra manera más adelante).

Esta función sirve para averiguar otros muchos datos pasándole otras constantes :

Public Const SM_CXSCREEN = 0 'Resolución horizontal de la pantalla
Public Const SM_CYSCREEN = 1 'Resolución vertical de la pantalla
Public Const SM_CXVSCROLL = 2 'Ancho de la "flecha" en una scroll bar vertical
Public Const SM_CYHSCROLL = 3 'Alto de la "flecha" en una scroll bar horizontal
Public Const SM_CYCAPTION = 4 'Altura de la barra de título de las ventanas
Public Const SM_CXBORDER = 5 'Ancho de los bordes non-sizables
Public Const SM_CYBORDER = 6 'Alto de los bordes non-sizables
Public Const SM_CXDLGFRAME = 7 'Ancho de los bordes de los dialog box
Public Const SM_CYDLGFRAME = 8 'Alto de los bordes de los dialog box
Public Const SM_CYHTHUMB = 9 'Alto del cuadro de scroll de una scroll bar horizontal
Public Const SM_CXHTHUMB = 10' Ancho del cuadro de scroll de una scroll bar horizontal
Public Const SM_CXICON = 11 'Ancho del icono estándar
Public Const SM_CYICON = 12 'Alto del icono estándar
Public Const SM_CXCURSOR = 13 'Ancho del cursor estándar
Public Const SM_CYCURSOR = 14 'Alto del cursor estándar
Public Const SM_CYMENU = 15 'Altura del menú
Public Const SM_CXFULLSCREEN = 16 'Ancho del área cliente de una ventana maximizada
Public Const SM_CYFULLSCREEN = 17 'Alto del área cliente de una ventana maximizada
Public Const SM_CYKANJIWINDOW = 18 'Alto de la ventana Kanji
Public Const SM_MOUSEPRESENT = 19 'True si hay ratón
Public Const SM_CYVSCROLL = 20 'Alto de la "flecha" en una scroll bar vertical
Public Const SM_CXHSCROLL = 21 'Ancho de la "flecha" en una scroll bar horizontal
Public Const SM_DEBUG = 22 'True si estamos corriendo una versión de windows con debug
Public Const SM_SWAPBUTTON = 23 'True si están intercambiados los botones del ratón
Public Const SM_CXMIN = 28 'Anchura mínima de una ventana
Public Const SM_CYMIN = 29 'Altura mínima de una ventana
Public Const SM_CXSIZE = 30 'Ancho de los bitmaps de la barra de título de las ventanas
Public Const SM_CYSIZE = 31 'Alto de los bitmaps de la barra de título de las ventanas
Public Const SM_CXMINTRACK = 34 'Ancho mínimo al redimensionar una ventana
Public Const SM_CYMINTRACK = 35 'Alto mínimo al redimensionar una ventana
Public Const SM_CXDOUBLECLK = 36 'Ancho del rectángulo para el doble click
Public Const SM_CYDOUBLECLK = 37 'Alto del rectángulo para el doble click
Public Const SM_CXICONSPACING = 38 'Ancho entre los iconos del escritorio
Public Const SM_CYICONSPACING = 39 'Alto entre los iconos del escritorio
Public Const SM_MENUDROPALIGNMENT = 40 'Cero si los menús popup están alineados a la izda. del elemento de la barra de menú. Distinto si los están a la dcha.
Public Const SM_PENWINDOWS = 41 'Handle de la DLL de Pen for windows si está instalada
Public Const SM_DBCSENABLED = 42 'True si está instalada la versión de carácter de doble byte del user.exe
Public Const SM_CMOUSEBUTTONS = 43 'Número de botones del ratón
Public Const SM_SECURE = 44 'True si está presente la seguridad
Public Const SM_CXSMICON = 49 'Ancho de los iconos pequeños
Public Const SM_CYSMICON = 50 'Alto de los iconos pequeños
Public Const SM_CYSMCAPTION = 51 'Alto de la barra de las barras de títulos pequeñas
Public Const SM_CXMENUSIZE = 54 'Ancho de los botones de la barra de menú (como una ventana MDI child cerrada)
Public Const SM_CYMENUSIZE = 55 'Alto de los botones de la barra de menú (como una ventana MDI child cerrada)
Public Const SM_CXMINIMIZED = 57 'Ancho de una ventana minimizada
Public Const SM_CYMINIMIZED = 58 'Alto de una ventana minimizada
Public Const SM_CXMAXTRACK = 59 'Ancho máximo cuando cambias el tamaño a una ventana
Public Const SM_CYMAXTRACK = 60 'Ancho máximo cuando cambias el tamaño a una ventana
Public Const SM_CXMAXIMIZED = 61 'Ancho por defecto de una ventana maximizada
Public Const SM_CYMAXIMIZED = 62 'Alto por defecto de una ventana maximizada
Public Const SM_NETWORK = 63 'El bit o está a 1 si hay red
Public Const SM_CLEANBOOT = 67 'Modo de arranque de Windows 95:0 = normal,1= a prueba de fallos, 2 = a prueba de fallos con red
Public Const SM_CXMENUCHECK = 71 'Ancho por defecto de la marca de check de un menú
Public Const SM_CYMENUCHECK = 72 'Alto de la marca de check de un menú
Public Const SM_SLOWMACHINE = 73 'true si la máquina es demasiado lenta para win95.
Public Const SM_MIDEASTENABLED = 74 'True si están disponibles el Hebreo y el Arabe



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com