Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: sunicomi en 11 Julio 2012, 15:00 PM

Título: [PYTHON] Nombre de la tecla ESC
Publicado por: sunicomi en 11 Julio 2012, 15:00 PM
Buenas gente, me gustaría saber como se hace para referirse a la tecla ESC en python. Lo quiero saber mas que nada para lo siguiente:

a = raw_input("")
if a == TECLA_ESCAPE :
..............


Gracias de antemano.
Título: Re: [PYTHON] Nombre de la tecla ESC
Publicado por: oxydec en 15 Julio 2012, 03:35 AM
Solo es una hipotesis pero creo que ESC en decimal es 27 asi que supongo que si haces un casting a entero del caracter que quieres comparar y lo comparas con 27 te funcionaria.

P.D. Es decir, suponiendo que esta codificado en ASCII
Título: Re: [PYTHON] Nombre de la tecla ESC
Publicado por: Eleкtro en 15 Julio 2012, 04:31 AM
No, Eso no es para nada algo fácil.

Cualquiera de estos dos módulos es lo que necesitas usar:
http://docs.python.org/library/msvcrt.html
http://docs.python.org/py3k/library/curses.html


Pero si estás usando TKinter, Te puedes ahorrar el trabajo:
Cita de: http://stackoverflow.com/questions/5760620/in-python-how-do-you-get-it-to-input-a-keyboard-press
Código (python) [Seleccionar]
import Tkinter as tk
def keypress(event):
if event.keysym == 'Escape':
root.destroy()
x = event.char
if x == "w":
print "blaw blaw blaw"
elif x == "a":
print "blaha blaha blaha"
elif x == "s":
print "blash blash blash"
elif x == "d":
print "blad blad blad"
else:
print x


root = tk.Tk()
print "Press a key (Escape key to exit):"
root.bind_all('<Key>', keypress)
# don't show the tk window
root.withdraw()
root.mainloop()

Espero que te sirva

saludos
Título: Re: [PYTHON] Nombre de la tecla ESC
Publicado por: sunicomi en 15 Julio 2012, 19:32 PM
Muchas gracias a los dos, ya he solventado el problema. El problema era que raw_input no detecta la pulsacion de ESC por lo que al final da igual el nombre pues no la detecta. La solucion ha sido usar la api GetAsyncKeyState para detectar la pulsacion de la tecla ESC.

Pero repito, muchas gracias a los dos.