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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  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 8,189 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.180


Superhacker (es broma xD )


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

Yo no te puedo ayudar mucho porque no sé mucho sobre tareas normales y además no uso tu lenguaje de programación.


En línea

El mas antiguo

Desconectado Desconectado

Mensajes: 94



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

Hola buen día para todos.-
Bueno lo estoy probando y parece que no hay errores, en cuanto a lo que propone Tachikomaia la verdad que no se ni por donde empezar pero seguramente lo voy a lograr, veremos como hacerlo.-
A el/los modeladores les pido que me digan si estoy haciendo muy extenso el hilo y de ser así paramos.-

Código
  1. import keyboard
  2.  
  3. numero = []
  4. cursor = 0
  5. final  = 0
  6. print('\n solo números...: ', end="")
  7.  
  8. while True:
  9.    if keyboard.read_key() == "enter":
  10.        break
  11.  
  12.    tecla = keyboard.read_key()
  13.    if tecla == "supr":
  14.        numero.pop(cursor)  
  15.    elif tecla == "backspace":
  16.        numero.pop()
  17.    elif not tecla.isdigit() and tecla != "flecha izquierda" and tecla != "flecha derecha":
  18.        keyboard.send("backspace")
  19.    elif tecla == "flecha izquierda":
  20.        if cursor >=1:
  21.            cursor -= 1
  22.    elif tecla == "flecha derecha":
  23.        if cursor < final:        
  24.            cursor += 1
  25.    else:
  26.        numero.insert(cursor, tecla)
  27.        final = len(numero) -1
  28.        cursor += 1
  29.  
  30. tmpNumero = ""
  31. if len(numero) > 0:
  32.    indice = 0
  33.    for num in numero:
  34.        tmpNumero += numero[indice]
  35.        indice += 1
  36.  
  37. numFinal = int(tmpNumero)
  38. print(numFinal)
  39.  
Slds.


« Última modificación: 27 Enero 2022, 16:00 pm por El mas antiguo » En línea

Sokoleonardo

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Presionar tecla de forma virtual (no física)
« Respuesta #12 en: 28 Enero 2022, 19:40 pm »

Hola!

en el antiguo python no tenias que importarla, es la funcion getch(); que devuelve la pulsación en bytes, ahora tenes que importarla en python 3:
Código:
from msvcrt import getch

Esta función lamentablemente esta funcionando solo en modo consola y no corriendo en el IDLE.

Yo, antiguamente habia logrado lo que estas pidiendo pero en C, porque esta funcion tambien esta en C facilmente.

Código:
from msvcrt import getch

letra = getch();

if letra == b"\n":
    print("Pulsaste enter.");
elif ord(letra) == 8:
    print("Pulsaste retroceso");

Lógicamente deberías crear una función con bucle donde cada letras se sume a la cadena que estas creando después de que esa letra fue "validada", también de lo contario si es "\n" termina el bucle y la función devuelve el resultado... Si quieres borrar lo que el usuario esta escribiendo podrías ayudarte de imprimir \r (retorno de carro) que retrocede al comienzo de la línea actual.

Código:
print(end="\r"); #retrocede

Eso es todo por ahora, tendrás que meterle mano, preguntas cualquier cosa.






« Última modificación: 28 Enero 2022, 19:47 pm por Sokoleonardo » En línea

El mas antiguo

Desconectado Desconectado

Mensajes: 94



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

Hola, muy buen día para todos.-
leonardo, te comento que getch no me da error pero me es imposible hacer que se muestre algún resultado, una consulta ¿en que me beneficiaria reemplazar keyboard por getch?.-

Slds.
En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.180


Superhacker (es broma xD )


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

Tal vez te sirva algo así:
Código:
N = 0
Do
   si characternro N != "0"
      eliminar todo el texto   
      N = últimochar
   sino si characternro N != "1"
      etc, etc
while N<=último char

Puedes usar 2 while para evitar escribir tantos ifs, es q7ue yo no me doty mucha maña.

Por otro lado, no sé cómo se toman los números si son pegados en el cuadro de texto ¿números o texto? Pero debería haber una función para saber si son números o texto...
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,178 Último mensaje 29 Enero 2006, 03:21 am
por sch3m4
Mostrar picture al presionar una tecla
Programación Visual Basic
jack06 1 1,462 Último mensaje 19 Julio 2008, 22:17 pm
por Fr4NN^
Eliminar texto seleccionado al presionar una tecla
.NET (C#, VB.NET, ASP)
oliverm 2 2,969 Último mensaje 3 Junio 2013, 20:41 pm
por oliverm
llamar a función ajax al presionar tecla enter
Desarrollo Web
proteus8 2 4,266 Último mensaje 6 Enero 2021, 01:46 am
por proteus8
Error Kali al presionar la tecla de windows
GNU/Linux
DuckyStripe 0 1,585 Último mensaje 16 Octubre 2021, 19:09 pm
por DuckyStripe
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines