Hallo,
weiß einer wie ich Tasten abhorchen kann ?
Ich will gucken welche Taste gedrückt wird um Einstellungen an einem Programm vorzunehmen.
Also Gui -> "Bitte drücken Sie eine Taste" - "taste x" wird gedrückt, nun kann man mit
_isPressed () taste x abhorchen.
Danke fürs lesen.
Tasten Abhorchen
-
- [ gelöst ]
-
Rise Against -
23. Dezember 2010 um 17:11 -
Geschlossen -
Erledigt
-
-
und wo ist jetzt die Frage?
Hasts dir doch schon selbst beantwortet
oder willst du dass erst die Tasten abgefangen werden die schonmal gedrückt wurden?
Falls ja dann leg dir einfach ein 2D - Array an wo für jede taste der Code und ein flag gespeichert ist, welches abgibt ob die Taste abgeprüft werden soll -
Fals du eine Array für _isPressed brauchst, ich hab immer eine auf Lager, da es viele Zahlen und so sind, kannst du gerne benutzen:
[autoit]Dim $aKeys[37][2] = [[30, "0"],[31, "1"],[32, "2"],[33, "3"],[34, "4"],[35, "5"],[36, "6"],[37, "7"],[38, "8"],[39, "9"],[41, "a"],[42, "b"],[43, "c"],[44, "d"],[45, "e"],[46, "f"],[47, "g"],[48, "h"],[49, "i"],["4A", "j"],["4B", "k"],["4C", "l"],["4D", "m"],["4E", "n"],["4F", "o"],[50, "p"],[51, "q"],[52, "r"],[53, "s"],[54, "t"],[55, "u"],[56, "v"],[57, "w"],[58, "x"],[59, "y"],["5A", "z"],[20, " "]]
[/autoit] -
Danke.
Aber ich weiß nicht wie ich das Einfügen soll.#include <Misc.au3>
Dim $aKeys[37][2] = [[30, "0"],[31, "1"],[32, "2"],[33, "3"],[34, "4"],[35, "5"],[36, "6"],[37, "7"],[38, "8"],[39, "9"],[41, "a"],[42, "b"],[43, "c"],[44, "d"],[45, "e"],[46, "f"],[47, "g"],[48, "h"],[49, "i"],["4A", "j"],["4B", "k"],["4C", "l"],["4D", "m"],["4E", "n"],["4F", "o"],[50, "p"],[51, "q"],[52, "r"],[53, "s"],[54, "t"],[55, "u"],[56, "v"],[57, "w"],[58, "x"],[59, "y"],["5A", "z"],[20, " "]]
While 1
If _IsPressed ($aKeys) Then
MsgBox (0,"Diese Taste wurde gedrückt",$aKeys)
EndIf
WEndAlso ich will ja eben wissen welche taste gedrückt wurde.
Oder muss ich für jede Taste ein _isPressed machen ? :o -
So müsste es funktionieren:
[autoit]#include <Misc.au3>
[/autoit][autoit][/autoit][autoit]Dim $aKeys[37][2] = [[30, "0"],[31, "1"],[32, "2"],[33, "3"],[34, "4"],[35, "5"],[36, "6"],[37, "7"],[38, "8"],[39, "9"],[41, "a"],[42, "b"],[43, "c"],[44, "d"],[45, "e"],[46, "f"],[47, "g"],[48, "h"],[49, "i"],["4A", "j"],["4B", "k"],["4C", "l"],["4D", "m"],["4E", "n"],["4F", "o"],[50, "p"],[51, "q"],[52, "r"],[53, "s"],[54, "t"],[55, "u"],[56, "v"],[57, "w"],[58, "x"],[59, "y"],["5A", "z"],[20, " "]]
[/autoit][autoit][/autoit][autoit]
Global $user32 = DllOpen('user32.dll')While 1
[/autoit]
For $i = 0 To UBound($aKeys)-1
If _IsPressed($aKeys[$i][0], $user32) Then
ConsoleWrite('Du hast "' & $aKeys[$i][1] & '" gedrückt!' & @CRLF)
Do
Sleep(10)
Until Not _IsPressed($aKeys[$i][0], $user32)
EndIf
Next
WEnd -
Zitat
Oder muss ich für jede Taste ein _isPressed machen ? :o
[autoit]
Nein einfach in einer For Schleife:#include <Misc.au3>
[/autoit]
Dim $aKeys[37][2] = [[30, "0"],[31, "1"],[32, "2"],[33, "3"],[34, "4"],[35, "5"],[36, "6"],[37, "7"],[38, "8"],[39, "9"],[41, "a"],[42, "b"],[43, "c"],[44, "d"],[45, "e"],[46, "f"],[47, "g"],[48, "h"],[49, "i"],["4A", "j"],["4B", "k"],["4C", "l"],["4D", "m"],["4E", "n"],["4F", "o"],[50, "p"],[51, "q"],[52, "r"],[53, "s"],[54, "t"],[55, "u"],[56, "v"],[57, "w"],[58, "x"],[59, "y"],["5A", "z"],[20, " "]]
While 1
For $iX = 0 To UBound($aKeys, 1) - 1
If _IsPressed($aKeys[$iX][0]) Then
MsgBox (0,"Taste gedrückt!","Diese Taste wurde gedrückt: " & $aKeys[$iX][1])
EndIf
Next
WEndEdit: Schade mal wieder zu langsam und zu lange am antwort schreiben gehangen.
-
Das ist ja die eigentliche Funktion eines Keyloggers

Ich will natürlich niemandem was vorwerfen!

-
Danke, und nein das wird kein Keylogger, jemand will, dass man eine Taste auswählen kann, und diese soll dann verschiedene
Tasten simulieren, und zum einstellen der Tasten brauche ich das ;Dbzw Zitat :
ZitatMacro.
-
Na dann ist ja alles klar.
Bei vielen Usern jedoch ist es eher traurig, dass sie Fassaden verwenden, damit man ihnen Hilfe zu nicht erlaubten Themen gibt!PS: RiseAgainst ist geil !

-
Zitat
"PS: RiseAgainst ist geil ! :D"
Allerdings, richtig fett!
-
Ich empfehle _WinApi_GetKeyboardState (WinAPIEx.au3)
Damit bekommt man mit nur einem einzigen Aufruf alle Tasten abgefragt.
Weiters sieht man an den Werten auch, ob zwischen 2 Abfragen eine Taste gedrückt wurde (Toogle).
Und: diese Funktion lässt sich nicht als Keylogger mißbrauchen, denn sie funktioniert nur bei eigenen Fenstern
E
-