¿Cómo configurar teclas de acceso directo globales en VB?
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 p>
'********************************************* ********** *************
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