Red de conocimiento informático - Problemas con los teléfonos móviles - Botón de fondo VB

Botón de fondo VB

Active 3 teclas de acceso rápido: (Nota: SetHotkey es mi función personalizada)

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

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