elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  Presionar tecla de forma virtual (no física)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Presionar tecla de forma virtual (no física)  (Leído 9,089 veces)
El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
Presionar tecla de forma virtual (no física)
« en: 24 Enero 2022, 21:00 pm »

Hola gente ¿Cómo están?, les dejo este para que me digan como presionar(virtualmente) la tecla “backspace” cuando se detecta un ingreso que no sea un número.-
Encontré algunas maneras pero lo único que logro es ralentizar el programa y que  no pueda ingresar nada mas.-


Código
  1. from pynput import keyboard as kb
  2. #import keyboard
  3.  
  4. def pulsa(tecla):
  5.    tmpTecla = str(tecla)
  6.    if '<' not in tmpTecla and tmpTecla != 'Key.esc' and tmpTecla != "Key.backspace":
  7.        print('No es un numero')
  8.  
  9.  
  10. def suelta(tecla):
  11.    if tecla == kb.Key.esc:
  12.        return False
  13.  
  14. escuchador = kb.Listener(pulsa, suelta)
  15. escuchador.start()
  16.  
  17. print('\n Solo números(con [escape] finaliza...: ', end="")
  18. while escuchador.is_alive():
  19.    pass
  20.  

Edito: esto que pongo a continuación funciona perfectamente solo pero no logro aplicarlo al código anterior.-

Código
  1. import keyboard
  2.  
  3. keyboard.press("windows+d")
  4. keyboard.release("windows+d")
  5.  


Desde ya gracias y un saludo a todos.


« Última modificación: 24 Enero 2022, 21:07 pm por El mas antiguo » En línea

fary


Desconectado Desconectado

Mensajes: 1.082



Ver Perfil WWW
Re: Presionar tecla de forma virtual (no física)
« Respuesta #1 en: 24 Enero 2022, 22:02 pm »

¿No es mas fácil informar al usuario de que no se permiten números? Luego simplemente haces una comprobación y listo.



En línea

Un byte a la izquierda.
El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
Re: Presionar tecla de forma virtual (no física)
« Respuesta #2 en: 24 Enero 2022, 22:44 pm »

Hola fary, si eso ya lo aprendí, lo que necesito es profundizar en algunas cosas antes de encarar la parte grafica.-

Código
  1. try:
  2.    numero = int(input(" Ingrese un numero entero (máximo 5 números)...: "))
  3. except ValueError:
  4.    print("\n Lo que ingreso no es un numero entero...")
  5. else:
  6.    contador = len(str(numero))    
  7.    if contador < 6:
  8.        print("\n El numero ingresado es valido = ", numero)
  9.    else:
  10.        print('\n El número ingresado es valido pero tiene mas de 5 cifras...')
En línea

fary


Desconectado Desconectado

Mensajes: 1.082



Ver Perfil WWW
Re: Presionar tecla de forma virtual (no física)
« Respuesta #3 en: 24 Enero 2022, 23:33 pm »

No sé si existirá lo que buscas  :huh: Por lo menos hasta donde yo sé, o yo no lo conozco en otros lenguajes de programación.

Realmente pulsar la tecla de retroceso no es una solución buena.

A ver que opinan otros compañeros.
En línea

Un byte a la izquierda.
Tachikomaia


Desconectado Desconectado

Mensajes: 1.460


Hackentifiko!


Ver Perfil
Re: Presionar tecla de forma virtual (no física)
« Respuesta #4 en: 25 Enero 2022, 00:44 am »

Luego de que se capte una presión de tecla, ver si es número, y en caso de que no lo sea borrar el último caracter del string. ¿Te sirve?
En línea

El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
Re: Presionar tecla de forma virtual (no física)
« Respuesta #5 en: 25 Enero 2022, 00:56 am »

Hola, no solo que me sirve es exactamente lo que estoy buscando, adelante.-
Ahora que viene, pedirme el CBU, jajajajaja, adelante
En línea

El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
Re: Presionar tecla de forma virtual (no física)
« Respuesta #6 en: 25 Enero 2022, 02:31 am »

Bueno no van a creer que ya lo logre, tengo una inmensa alegría  ;D ;D ;D, me falta ajustar una
cosa que no hace al funcionamiento sino a lo visual, después que el amigo postee su código, posteo el mío.-
Nos leemos mañana(Argentina)   
En línea

El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
Re: Presionar tecla de forma virtual (no física)
« Respuesta #7 en: 25 Enero 2022, 20:10 pm »

Hola gente ¿Cómo están? Bueno presento mi código en sociedad, me falta tan solo unas líneas para que acepte también números reales.-

Código
  1. import keyboard
  2.  
  3. numero = ""
  4. print('\n solo números...: ', end="")
  5. while True:
  6.    if keyboard.read_key() == "enter":
  7.        break
  8.    else:
  9.        tecla = keyboard.read_key()
  10.        if tecla == "backspace":
  11.            numero = numero[:-1]
  12.        else:
  13.            if not tecla.isdigit():
  14.                keyboard.send("backspace")
  15.            else:
  16.                numero += tecla
  17.  
  18. numeros = int(numero)
  19. print('\n final', numeros)
  20.  

Slds.

En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.460


Hackentifiko!


Ver Perfil
Re: Presionar tecla de forma virtual (no física)
« Respuesta #8 en: 26 Enero 2022, 13:34 pm »

¿Qué pasa si en el cuadro de texto pegan letras?
En línea

El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
Re: Presionar tecla de forma virtual (no física)
« Respuesta #9 en: 26 Enero 2022, 15:29 pm »

Hola buen día para todo.-
Que pasa amigo, yo esperaba de Ud. Un ej. de código y me sale con un problema, esta muy bien gracias x hacérmelo notar, ya veremos.-
Por el momento dejo el código con un pequeño avance, no había contemplado el hecho de que el operario presionara la tecla “backspace”.-
Lo que me pasa ahora es que si el operario pulsa “flecha izquierda” o “flecha derecha” no funciona, hacer que no haga nada es muy fácil(además es como debe ser)
lo que es mas difícil es si se mueve con la flecha y luego aprieta “Sup” ¿Cómo posicionarme en la variable número? Para borrar el número correspondiente, ya lo voy a lograr.- 


Código
  1. import keyboard
  2.  
  3. numero = ""
  4. print('\n solo números...: ', end="")
  5.  
  6. while True:
  7.    if keyboard.read_key() == "enter":
  8.        break
  9.    else:
  10.        tecla = keyboard.read_key()
  11.        if tecla == "backspace":
  12.            numero = numero[:-1]
  13.        else:
  14.            if not tecla.isdigit():
  15.                keyboard.send("backspace")
  16.            else:
  17.                numero += tecla
  18.  
  19. numeros = int(numero)
  20. print('\n final', numeros)
  21.  

Si alguien me quiere ayudar Danielito agradecido  ;D ;D ;D

Slds.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Presionar Tecla en VB
Programación Visual Basic
KPOCH 2 5,376 Último mensaje 29 Enero 2006, 03:21 am
por sch3m4
Mostrar picture al presionar una tecla
Programación Visual Basic
jack06 1 1,688 Último mensaje 19 Julio 2008, 22:17 pm
por Fr4NN^
Eliminar texto seleccionado al presionar una tecla
.NET (C#, VB.NET, ASP)
oliverm 2 3,406 Último mensaje 3 Junio 2013, 20:41 pm
por oliverm
llamar a función ajax al presionar tecla enter
Desarrollo Web
proteus8 2 5,696 Último mensaje 6 Enero 2021, 01:46 am
por proteus8
Error Kali al presionar la tecla de windows
GNU/Linux
DuckyStripe 0 1,817 Último mensaje 16 Octubre 2021, 19:09 pm
por DuckyStripe
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines