Seite 1 von 1
Und nochmal Hotkeys
Verfasst: Freitag 23. Januar 2009, 17:26
von INFACT
Sehr geehrtes Python-Forum!
Ich möchte für ein Programm Keys abfragen.
Ich habe das in diesem Forum schon gesucht und bin zu folgendem Script gekommen:
Code: Alles auswählen
import msvcrt
import thread
def SetHotKey(key,func,funcargs=None,CommandPrompt=False):
otherkeys={"{LEFT}":"ÓK"}
if key in otherkeys.keys():
key=otherkeys[key]
print "test",key
def keylogger(taste,func,funcargs=None):
while 1:
x=msvcrt.getch()
if x==taste:
if funcargs:
func (funcargs)
else:
func()
if CommandPrompt:
keylogger(key,func,funcargs)
else:
thread.start_new_thread(keylogger,(key,func,funcargs))
das otherkeys dict kommt daher, dass, wenn man bestimmte Tasten bei diesem Script:
Code: Alles auswählen
def keylogger():
while 1:
x=msvcrt.getch()
print "gedrückt:",x
drückt dieses herauskommt (ich habe NUR die up taste gedrückt):
Wie kann ich verhindern, dass das da ^ passiert und wenn man eingibt
Code: Alles auswählen
>>> def hello(x):
print "gedrückt",x
>>> SetHotKey("{LEFT}",hello,("left"),True)
#hier würde man dann left drücken
gedrückt left
Ich freue mich auch Antworten!
Verfasst: Samstag 24. Januar 2009, 20:59
von Dauerbaustelle
HÄ? wtf
Re: Und nochmal Hotkeys
Verfasst: Samstag 24. Januar 2009, 21:32
von derdon
INFACT hat geschrieben:Leute mit einenr minimalen Immunität gegen Aluminium leiden an einer Aluminiumminimumimmunität.

Verfasst: Samstag 24. Januar 2009, 21:38
von Dauerbaustelle
Habs in 1,4 Sek geschafft, fehlerfrei!
Verfasst: Montag 26. Januar 2009, 12:58
von INFACT
Wow, ich nicht, sonst würde ich nicht Fragen...
Verfasst: Montag 26. Januar 2009, 14:32
von Dauerbaustelle
"Hä?" und "wtf" deuten meist auf Unverständnis hin...
Verfasst: Montag 26. Januar 2009, 14:51
von sea-live
welche python version benutzt du und welches OS
Verfasst: Montag 26. Januar 2009, 21:42
von INFACT
Dauerbaustelle hat geschrieben:"Hä?" und "wtf" deuten meist auf Unverständnis hin...
Hä? wtf, ich denk du hast es in 1.4 sekunden geschafft?
Sieht mir eher nach 39 minuten aus, wenn ich mir die Zeit zwischen deinen Posts anschaue...("Hä? wtf" und "Habs in 1,4 Sek geschafft, fehlerfrei!") ...oder du brauchst 38:58,60 minuten um es zu verstehen. Dann würde mich allerdings dein letzter Post wundern
Sea-life hat geschrieben:welche python version benutzt du und welches OS
2.5.2 / Windows32 (noch, siehe unten, was ich davon halte...)
Verfasst: Montag 26. Januar 2009, 22:03
von Dauerbaustelle
Das Aufsahen von Aluminiumminimumimmunität dauerte 1,3 sek -.-
Verfasst: Mittwoch 28. Januar 2009, 16:29
von INFACT
Dann schilder mal was du nicht verstehst...

Verfasst: Mittwoch 28. Januar 2009, 17:56
von Dauerbaustelle
Die Fragestellung :O
Verfasst: Mittwoch 28. Januar 2009, 20:08
von Hyperion
Dauerbaustelle hat geschrieben:Die Fragestellung :O
Sie kann nicht wirklich wichtig sein, wenn sich der OP so wenig Mühe gibt das ganze besser darzustellen

Verfasst: Mittwoch 28. Januar 2009, 20:23
von INFACT
Hyperion hat geschrieben:Dauerbaustelle hat geschrieben:Die Fragestellung :O
Sie kann nicht wirklich wichtig sein, wenn sich der OP so wenig Mühe gibt das ganze besser darzustellen

Ich möchte verhindern das das:
passiert und stattdessen:
vielleicht mit einem dict?
Code: Alles auswählen
dict={"Ó","H":"{left}"}
gedrückt=mscvrt.getch()
if gedrückt in dict.keys: gedrückt=dict[gedrückt]
Ich habe nur das builtin dict als dictionari genommen, weil es ein beispiel ist.
Verfasst: Mittwoch 28. Januar 2009, 21:34
von Dauerbaustelle
INFACT hat geschrieben:
Ich möchte verhindern das das:
Soll ich dir Fragestellung aus dem Arsch ziehen? Ich habe echt besser zu tun! ....*abreg* Okay, und warum passiert das und wann?
Verfasst: Mittwoch 28. Januar 2009, 23:05
von Leonidas
Das Enconding ist falsch und INFACT versucht das jetzt irgendwie über Textersetzung zu lösen, was eher keine gute Idee ist.
Verfasst: Donnerstag 29. Januar 2009, 16:38
von INFACT
Leonidas hat geschrieben:Das Enconding ist falsch und INFACT versucht das jetzt irgendwie über Textersetzung zu lösen, was eher keine gute Idee ist.
1. # coding=iso-8859-1
Dann macht es statt dem O* ein a mit einem schlängel oben.
Welches soll ich denn nehmen?
2. Wie soll ich es sonst lösen?, ich will nur dass es etwas macht zb. print "hi" wenn "{up}" gedrückt ist, also sowas wie SendKeys, nur HotKeys...
Verfasst: Donnerstag 29. Januar 2009, 16:43
von Leonidas
INFACT hat geschrieben:Leonidas hat geschrieben:Das Enconding ist falsch und INFACT versucht das jetzt irgendwie über Textersetzung zu lösen, was eher keine gute Idee ist.
1. # coding=iso-8859-1
Dann macht es statt dem O* ein a mit einem schlängel oben.
Welches soll ich denn nehmen?
Das Encoding was du da angibst, ist nur dafür da, dass Unicode-Strings (also die mit dem ``u'...'``) mit diesem Encoding dekodiert werden.
Für die Ausgabe musst du die Unicode-Strings in Bytestrings enkodieren und zwar mit dem Encoding, dass deine Konsole/Ausgabe erwartet. Bei mir ist das UTF-8.
Verfasst: Samstag 31. Januar 2009, 19:33
von INFACT
Achso...
Das wusste ich ja nicht
Danke für eure Hilfe! Jetzt klappts!
Vielen Dank