Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

stdWindow.SendKeysEvent() - Await key received

Abierto
#63 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado

Línea de trabajo

Start with stdWindow.SendKeysEvent() and the linked SetWindowHookEx documentation, then compare the proposed KeyboardHook flow with the existing keybd_event usage. Done means the optional wait mode does not return until the final key is received and the hook is cleared afterward; the issue names no tests or files.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement lib-stdWindow

Use SetWindowHookEx() to create a KeyboardHook to ensure all keys sent by keybd_event() are received.

Pseudo-code:

Function KeybdHook(key, ...)
  For iKey = 1 to len(keys)
    if not keys(iKey).received then
      if key.code = keys(iKey).code then
        key.received = true
        exit for
      end if
      exit for
    end if
  next
  KeybdHook = CallNextHookEx(...)
End Function

Function SendKeysEvent(..., Optional bWaitForRetrieval as boolean)
  if bWaitForRetrieval then iHook = SetWindowHookEx(ActiveWnd, WH_KEYBOARD, AddressOf KeybdHook)
  For iKey = 1 to len(keys)
    keybd_event(keys(iKey))
  next 
  if bWaitForRetrieval then
    While not keys(len(keys)).received
      DoEvents
    Wend
    Call ClearWindowHookEx(iHook)
  end if
  
End Function

See also:

Lenguaje dominante
VBA
Estrellas
412
Forks
70
Merge medio
16 h 10 min
PR fusionados (30 d)
3

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sancarn/stdVBA

Todos los issues de sancarn/stdVBA

Issues similares

Más issues de Desktop Dev

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.