valor teclas teclado por libreria leer lectura interrupcion ingresar detectar datos como python winapi key-bindings

teclas - libreria keyboard python



Detectando pulsaciones de teclas usando win32api en Python (3)

Esta no es la forma en que funciona en la programación de GUI. No llamas a un método para verificar si presionas la tecla. En cambio, recibes mensajes cuando se presionan las teclas. Suponiendo que tiene una ventana que está recibiendo entrada, entonces debe responder al mensaje WM_KEYDOWN que llega al procedimiento de su ventana o al mapa de mensajes en términos de Python win32api.

Su edición muestra que no está utilizando la cola de mensajes, que es bastante inusual. Puede lograr lo que desee llamando a GetAsyncKeyState() .

Estoy tratando de romper un ciclo en Python con una pulsación de tecla específica usando win32api. ¿Cómo podría uno hacer esto?

¿Cuál es la versión real de win32api.KeyPress (''H'') en el siguiente código?

Revisado:

import win32api while True : cp = win32api.GetCursorPos() print cp if win32api.KeyPress(''H'') == True : break

Quiero poder romper un ciclo presionando la tecla h .

Editar:

Estoy intentando hacer un programa que informe repetidamente las posiciones del mouse y necesito un mecanismo para salir de dicho programa.

Ver el código revisado.


win32api es solo una interfaz para la biblioteca subyacente de bajo nivel de Windows. Ver la función GetAsyncKeyState :

Determina si una tecla está activada o desactivada en el momento en que se llama a la función, y si se presionó la tecla después de una llamada anterior a GetAsyncKeyState.

Sintaxis

SHORT WINAPI GetAsyncKeyState( __in int vKey );

Valor de retorno

Tipo: SHORT

Si la función tiene éxito, el valor de retorno especifica si se presionó la tecla desde la última llamada a GetAsyncKeyState, y si la tecla está actualmente activada o desactivada. Si se establece el bit más significativo, la tecla está desactivada, y si se establece el bit menos significativo, se presionó la tecla después de la llamada anterior a GetAsyncKeyState.

Tenga en cuenta que el valor de retorno está codificado en bits (no es boolean ). Para obtener los valores de vKey , una aplicación puede usar las constantes de código de clave virtual en el módulo win32con .

Por ejemplo, probando la tecla "BLOQ MAYÚS":

>>> import win32api >>> import win32con >>> win32con.VK_CAPITAL 20 >>> win32api.GetAsyncKeyState(win32con.VK_CAPITAL) 0 >>> win32api.GetAsyncKeyState(win32con.VK_CAPITAL) 1

La constante de clave virtual para letras simples son códigos ASCII, por lo que la prueba del estado de la tecla "H" (se presionó la tecla) se verá así:

>>> win32api.GetAsyncKeyState(ord(''H'')) 1