Red de conocimiento informático - Material del sitio web - ¿Cómo configurar teclas de acceso directo globales en VB?

¿Cómo configurar teclas de acceso directo globales en VB?

-En un módulo de clase (clase 1).

Tipo privado POINTAPI

x tiene la misma longitud

Siempre que

Tipo final

Tipo privado mensaje

hwnd tiene la misma longitud

Longitud del mensaje

wParam tiene la misma longitud

lParam tiene la misma longitud

La hora es la misma

pt que POINTAPI

Tipo final

Tipo privado KeyMsg

"ID As Long" guarda el ID al registrar la tecla de acceso rápido.

"Key As String" guarda la palabra clave al registrar una tecla de acceso rápido.

Tipo de finalización

Constante privada PM _ REMOVE = & ampH1

Constante privada WM_HOTKEY = & ampH312

Tecla de acceso rápido de registro de función de declaración privada Lib "usuario 32" (ByVal hwnd es largo, ByVal ID es largo, ByVal fsModifiers es largo, ByVal vk es largo) es largo

Rango de valores de ID: 0X0000-0XBFFF.

Función de declaración privada para cancelar el registro de la tecla de acceso rápido Lib "usuario 32" (ByVal hwnd tiene la misma longitud, ByVal ID tiene la misma longitud).

Función de declaración privada PeekMessage Lib "user32 "alias". PeekMessageA" ( lpMsg As Msg, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long

Función de declaración privada WaitMessage Lib "user32 "() es larga

'********************************************* ********** *************

Enumerar teclas ShiftKeys

AltKey = & ampH1

CtrlKey = & ampDeuterium

ShiftKey = & ampH4

Fin de enumeración

Variables locales

Cancelación booleana de privado b

Solo clsHwnd privado

Grupo de claves privadas en forma de número entero

El ID de clave privada es largo

Clave privada () como KeyMsg

Anunciar un evento

Evento público HotKeysDown (tecla en forma de cadena)

Registrar teclas de acceso rápido Puede registrar varios grupos de teclas de acceso rápido.

Sub RegHotKeys(ByVal hwnd es Long, ByVal ShiftKey es ShiftKeys, ByVal ComKey es KeyCodeConstants, ByVal Key es String)

Continúe con el siguiente paso cuando se produzca un error

clsHwnd = hwnd

KeyID = KeyID + 1

KeyGroup = KeyGroup + 1

ReDim clave reservada (grupo de claves)

Registrar teclas de acceso rápido hwnd, keyid, tecla mayúsculas, comkey 'Registrar teclas de acceso rápido.

Botón (grupo de teclas). ID = KeyID

Clave (grupo de claves).

key=trim(key)

Conector final

Tecla de acceso rápido anular registro

Sub UnRegHotKeys (clave ByVal en forma de cadena)

En caso de error, continuar al siguiente paso

Si KeyGroup = 0, salga de Sub

Etiqueta I como número entero

Para i = 0 a KeyGroup

Si Trim (clave) = Recortar(clave(i).clave) y luego

UnregisterHotKey clsHwnd, Keys(i). Identificación

Termina si...

Entonces

Finalizar conector

Cancela todos los registros de teclas de acceso rápido.

Sub UnRegAllHotKeys()

En caso de error, continúe con el siguiente paso

Si KeyGroup = 0, salga de Sub

Marcar I como un número entero

Para i = 0 en KeyGroup

UnregisterHotKey clsHwnd, Keys(i). Identidad

Luego

Finalizar empalme

Esperar información crítica

Sub WaitMsg()

Continuar en caso de error Siguiente paso

bCancelar = False

El mensaje atenuado es Msg, I es un número entero

Hacer sin cancelar

Esperar información clave.

Información del juez

Si PeekMessage(Message, clsHwnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) entonces

Para i = 0 para KeyGroup

Si clave (I). ID = mensaje. "wparamthen" determina qué conjunto de teclas de acceso rápido presionar.

Presiona la tecla de acceso rápido al evento ascendente (tecla (I)). key)' evento desencadenante.

Terminará si...

Entonces

Terminará si...

Múltiples actividades

Timbre

Finalizar conector

Cancelar mensaje en espera

Sub UnWaitMsg()

bCancel = True

Conector final

Private subclass_Initialize()

KeyID = & amph 1000 & ID inicial

KeyGroup = -1

ReDim clave de contraseña ( 0)

Conector de terminal

Privado subclass_Terminate()

En caso de error, continúe con el siguiente paso

bCancelar = Verdadero

Cancelar tecla de acceso rápido

Finalizar conector

-En la tabla.

Private subform_Load()

Registrar tecla de acceso rápido

Establecer hk = Nueva Clase1

Registrar tecla de acceso rápido global. Puede registrar varias teclas de acceso rápido.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Primera clave-Segunda clave-Nombre

Hong Kong. RegHotKeys Me.hwnd, CtrlKey, vbKeyQ, " Q "

Hong Kong. RegHotKeys Me.hwnd, CtrlKey, vbKeyW, " W "

Si la tecla de acceso rápido registrada ya está ocupada por otro programa, no será válida.

Yo. 'Mostrar' no se puede omitir; de lo contrario, el formulario no se podrá mostrar.

Hong Kong. WaitMsg

Conector final

Private Sub hk _ HotKeysDown (la clave es una cadena)

Seleccione palabras clave entre mayúsculas y minúsculas

Caso "Q" seguido de mayúsculas y minúsculas por el nombre de la tecla de acceso rápido registrada.

El código para presionar la primera tecla de acceso rápido.

Caso "W"

Código para presionar la segunda tecla de acceso rápido.

Conector final

Asegúrese de agregar la instrucción Fin al salir del programa; de lo contrario, solo ocultará la ventana y no finalizará el programa.

Subformulario privado_Descargar(cancelar a número entero)

Fin

Finalizar conector