VB Quiero cambiar la pulsación automática de teclas presionando una determinada tecla en el juego. ¿Necesito usar API?
Los juegos requieren niveles muy altos de programación. A mí también me interesan estos, pero aún no los he hecho.
Encontré problemas similares cuando estaba trabajando en otras cosas antes y guardé información para su referencia:
Opción explícita
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const privada VK_ADD As Long = amp H6B 'Tecla más
Const privada VK_APPS As Long = amp; ;H5D 'Tecla de aplicaciones (equivalente al botón derecho del mouse)
Private Const VK_BACK As Long = amp; H8 'Tecla de retroceso
Private Const VK_CAPITAL As Long = amp; H14 'Caps; Tecla de bloqueo (clave de conversión de caso)
Const privada VK_CANCEL mientras = amp H3 'Ctrl proceso de interrupción
Const privada VK_CONTROL mientras = amp; Private Const VK_DECIMAL As Long = amp; H6E 'Clave de punto decimal
Private Const VK_DELETE As Long = amp; H2E
Private Const VK_DIVIDE As Long = amp; p> p>
Const privada VK_DOWN Mientras = amp; H28
Const privada VK_END Mientras = amp H23
Const privada VK_ESCAPE Mientras = amp; p>
Const privada VK_F1 mientras = amp H70
Const privada VK_F10 mientras = amp H79
Const privada VK_F11 mientras = amp;
Const privada VK_F12 mientras = amp H7B
Const privada VK_F2 mientras = amp H71
Const privada VK_F3 mientras = amp; >Const Privado VK_F4 Mientras = amp; H73
Const Privado VK_F5 Mientras = amp H74
Const Privado VK_F6 Mientras = amp; Const VK_F7 Mientras = amp H76
Privado Const VK_F8 Mientras = amp; H77
Priva
te Const VK_F9 Mientras = amp H78
Const privada VK_HOME Mientras = amp H24
Const privada VK_INSERT Mientras = amp; VK_LCONTROL Mientras = amp; HA2
Const privada VK_LEFT Mientras = amp H25
Const privada VK_LMENU = amp HA4 'Tecla Alt izquierda
Const privada VK_LSHIFT mientras = amp; HA0
Const privada VK_LWIN mientras = amp H5B
Const privada VK_MENU = amp; >Private Const VK_MULTIPLY As Long = amp; H6A 'Clave de signo de multiplicación
Private Const VK_NEXT As Long = amp H22 'Clave de página siguiente
Private Const VK_NUMLOCK As Long = amp;
Const privada VK_NUMPAD0 mientras = amp; H60
Const privada VK_NUMPAD1 mientras = amp H61
Const privada VK_NUMPAD2 mientras = amp; p>
Const privada VK_NUMPAD3 mientras = amp; H63
Const privada VK_NUMPAD4 mientras = amp H64
Const privada VK_NUMPAD5 mientras = amp;
Const privada VK_NUMPAD6 mientras = amp; H66
Const privada VK_NUMPAD7 = amp; H67
Const privada VK_NUMPAD8 = amp; >Const Privada VK_NUMPAD9 Mientras = amp; H69
Const Privada VK_PAUSE Mientras = amp H13
Const Privada VK_PRINT Mientras = amp; Const VK_PRIOR As Long = amp; H21 'Tecla de avance de página
Const privada VK_RCONTROL As Long = amp; HA3
Const privada VK_RETURN As Long = amp; >
Const privada VK_RIGHT Mientras =
amp;H27
Const privada VK_RMENU mientras = amp;HA5 'tecla Alt derecha
Const privada VK_RSHIFT mientras = amp;HA1
Const privada VK_RWIN como Long = amp; H5C
Private Const VK_SCROLL As Long = amp H91 'Tecla de bloqueo de desplazamiento
Private Const VK_SEPARATOR As Long = amp; p>
Const privada VK_SHIFT mientras = amp; H10
Const privada VK_SLEEP mientras = amp H5F 'Tecla de suspensión
Const privada VK_SNAPSHOT = amp; Tecla Imprimir pantalla
Const privada VK_SPACE mientras = amp H20
Const privada VK_SUBTRACT mientras = amp H6D 'Tecla menos
Const privada VK_TAB mientras; = amp;H9
Const privada VK_UP mientras = amp;H26
Const privada VK_OEM_1 mientras = amp;HBA 'Windows 2000: para teclado estándar de EE. UU., es "; :" tecla
Private Const VK_OEM_2 As Long = amp HBF 'Windows 2000: para el teclado estándar de EE. UU., es la tecla "/?"
Private Const VK_OEM_3 As Long = amp; 'Windows 2000: para el teclado estándar de EE. UU., es la tecla "`~"
Private Const VK_OEM_4 As Long = amp HDB 'Windows 2000: para el teclado estándar de EE. UU., es la tecla "[{ " tecla
Const privada VK_OEM_5 mientras = amp; HDC 'Windows 2000: para el teclado estándar de EE. UU., es la tecla "\|"
Const privada VK_OEM_6 mientras = amp; HDD 'Windows 2000: para el teclado estándar de EE. UU., es la tecla "]}"
Private Const VK_OEM_7 As Long = amp HDE 'Windows 2000: para el teclado estándar de EE. UU., es la tecla "single/ tecla "comillas dobles"
Const privada VK_OEM_COMMA siempre =&HBC 'Windows 2000: para cualquier país, es la tecla ","
Const privada VK_OEM_MINUS mientras =
HBD 'Windows 2000: Para cualquier país, la tecla '-'
Const privada VK_OEM_PERIOD As Long = HBE 'Windows 2000: Para cualquier país, la clave '.' VK_OEM_PLUS As Long = & HBB 'Windows 2000: Para cualquier país, es la clave " "
Const Privada KEYEVENTF_KEYUP = & H2
Ejemplo de programa:
Opción Explícito
'Simular función de teclado
Privado Declarar Sub keybd_event Lib "user32" _
(ByVal bVk como byte, ByVal escanear como byte, ByVal dwFlags como largo , ByVal dwExtraInfo As Long)
'Realice diferentes códigos de escaneo y conversiones de caracteres de acuerdo con el tipo de mapeo especificado, 0——wCode es un código de clave virtual.
La función devuelve el código de escaneo correspondiente
Función de declaración privada MapVirtualKey Lib "user32" _
Alias "MapVirtualKeyA" _
(ByVal wCode As Long, _
p>ByVal wMapType Como largo) _
Como largo
Const privada VK_CONTROL = amp H11
Const privada KEYEVENTF_KEYUP = amp; H2 p>
Private Const VK_RETURN = amp;HD
Subcomando privado1_Click()
Descargarme
Fin Sub
Sub privado Form_click()
Si Clipboard.GetFormat(vbCFText) Entonces
keybd_event VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0 'Iniciar Ctrl
keybd_event Asc("V"), MapVirtualKey(Asc("V"), 0), 0, 0 'Simula presionar la tecla "V", aquí está el código ascll
keybd_event Asc ("V") , MapVirtualKey(Asc("V"), 0), KEYEVENTF_KEYUP, 0 'Deshacer la tecla V presionada
keybd_event VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0 'Deshacer ctrl
'Las siguientes dos oraciones son principalmente para saltos de línea y se pueden eliminar, puedes eliminarlas
keybd_event VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0 'Simula retorno de carro
keybd_event VK_RETURN, MapVirtualKey(VK_RETURN, 0), KEYEVENTF_KEYUP, 0 'Deshacer retorno de carro
Else
MsgBox "El contenido del portapapeles no está en formato de texto"
Finalizar si p>
Finalizar sub