Botón de fondo VB
Establezca la tecla de acceso rápido 1, "CTRL, 112", "AÑADIR" y presione Ctrl+F1 para activar el programa especificado.
Establezca la tecla de acceso rápido 2, 113, "Agregar" y presione F2 para activar el programa especificado.
Establezca la tecla de acceso rápido 3, "CTRL+ALT, 113", "Agregar" y presione Ctrl+Alt+F2 para activar el programa especificado.
Nota: Nota: La operación después de activar la tecla de acceso rápido se juzga por el valor pasado por el KeyId de la función personalizada SetHotkey.
Tres teclas de acceso rápido para cerrar sesión:
SetHotkey 1,"," Del "Debe usarse para salir del programa; de lo contrario, el programa morirá.
SetHotkey 2, " ," Del "
Establecer Hotkey 3,","Delete"
Cree un nuevo archivo de módulo (.bas) y personalice la función SetHotkey y otras funciones para que pueda Este módulo se puede llamar en cualquier programa futuro.
Nota: Este módulo trata sobre operaciones de teclas de acceso rápido.
Opción explícita
Función de declaración privada SetWindowLong Lib "usuario 32" alias "SetWindowLongA" (ByVal hwnd es Long, ByVal nIndex es Long, ByVal dwNewLong es Long) es Long p >
Función de declaración privada GetWindowLong Lib "usuario 32" alias "GetWindowLongA" (ByVal hwnd es Long, ByVal nIndex es Long) es Long
Función de declaración privada CallWindowProc Lib "usuario 32" alias "CallWindowProcA " (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) as Long
Función de declaración privada registro tecla de acceso rápido Lib "usuario 32" (ByVal hwnd es Long , ByVal id es Long, ByVal fskey_Modifiers es Long, ByVal vk es Long) es Long
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) tiene la misma longitud
Const WM _ HOTKEY = & ampH312
Const MOD _ ALT = & ampH1
Const MOD _ CONTROL = & ampDeuterium
Const MOD _ SHIFT = & ampH4
Const GWL_WNDPROC = (-4) Nota: La dirección de la función de ventana.
Dim key_preWinProc As Long nota: Se utiliza para guardar información de la ventana.
Dim key_Modifiers es Long, key_uVirtKey es Long, key_idHotKey es Long
Dim key_IsWinAddress es booleano Nota: determine si desea obtener información de la ventana.
La función keyWndproc(ByVal hwnd es Long, ByVal Msg es Long, ByVal wParam es Long, ByVal lParam es Long) es Long
Si Msg = WM_HOTKEY, entonces
Seleccione Case wParam Nota: El valor de wParam es key_idHotKey.
Caso 1 Nota: Después de activar tres teclas de acceso rápido, las operaciones correspondientes a las tres teclas de acceso rápido se pueden modificar aquí en otros programas.
MsgBox“aa”
Caso 2
MsgBox“bb”
Caso 3
MsgBox“copiar "Enviar"
Finalizar selección
Terminará si...
Nota: Envía el mensaje a la ventana especificada.
keyWndproc = CallWindowProc(key_preWinProc, hwnd, Msg, wParam, lParam)
Función final
Función SetHotkey (ByVal KeyId es largo, ByVal KeyAss0 es String, La acción ByVal es String)
Atenuar KeyAss1 mientras
Atenuar KeyAss2 como String
Atenuarme mientras
i = InStr(1 ,KeyAss0,",")
Si i = 0, entonces
KeyAss1 = Val(KeyAss0)
KeyAss2 = " "
Otro
KeyAss1 = Derecha(KeyAss0, Len(KeyAss0) - i)
KeyAss2 = Izquierda(KeyAss0, i - 1)
Si... finalizará
key_idHotKey = 0
key_Modifiers = 0
key_uVirtKey = 0
Si key_IsWinAddress = False entonces tenga en cuenta: determine si es necesario obtener información de la ventana. Si se adquiere repetidamente, el programa morirá cuando finalmente se restaure la ventana.
Nota: Registre la dirección original del programa de ventana.
key_preWinProc = GetWindowLong(form 1. hwnd, GWL_WNDPROC)
Nota: Reemplace el programa de ventana original con un programa personalizado.
SetWindowLong Form1.hwnd, GWL_WNDPROC, dirección de keyWndproc
Terminará si...
key_idHotKey = KeyId
Seleccione caso operación
Caso "Agregar"
Si KeyAss2 = "Ctrl " entonces key_Modifiers = MOD_CONTROL
Si KeyAss2 = "Alt " entonces key_Modifiers = MOD_ALT
Si KeyAss2 = "Shift " entonces key_Modifiers = MOD_SHIFT
Si KeyAss2 = "Ctrl+Alt " entonces key_Modifiers = MOD_ CONTROL+MOD _ Alt
Si KeyAss2 = "Ctrl + Shift "Entonces teclea _ Modificadores = MOD _ CONTROL+MOD _ Shift
Si KeyAss2 = "Ctrl+Alt+Shift "Entonces teclea _ Modificadores = MOD _ CONTROL+MOD _ Alt+MOD _ Shift
p>Si KeyAss2 = "Shift+Alt " entonces tecla _ Modificadores = MOD _ Shift+MOD _ Alt
key_uVirtKey = Val(KeyAss1)
Registrar tecla de acceso rápido form1. hwnd, key_idhotkey, key_modifiers, key_uvirtkey NOTA: Registra las teclas de acceso rápido del sistema con Windows.
Key_IsWinAddress = True Nota: No es necesario obtener información de la ventana.
Caso "Del"
Setwindowlongform1.hwnd, GWL_wndproc, key_prewinproc Nota: Restaurar información de la ventana.
Anular el registro de la tecla de acceso rápido form1.hwnd, key_uvirtkey Nota: cancelar la tecla de acceso rápido del sistema.
Key_IsWinAddress = False Nota: La información de la ventana se puede obtener nuevamente.
Finalizar selección
Finalizar función