Ich wollte grade rein interesse halber folgendes Versuchen:
#include <Misc.au3>
$dll = DllOpen("user32.dll")
While sleep(100)
For $i = 1 To 165
If _IsPressed(Hex($i, 2), $dll) Then
If $i = "41" Then
MsgBox(0, "", "a")
EndIf
EndIf
Next
WEnd
Wenn ich das Script jedoch starte, passiert nichts, wenn ich A drücke.
_IsPressed
-
- [ offen ]
- Ineluki
- Geschlossen
- Erledigt
-
-
erstmal herzlichen glückwunsch, zum 100. beitrag.
das sieht mir zimlich aus wie die Gerundlage eines Keyloggers
Aber wenn du nur A abfragen mölchtest, dann nimm HotKeyset
-
Erstmal Danke, hab gar nicht bemerkt, dass dies mein 100. beitrag ist^^ Nein, es soll kein Keylogger werden. Ich hatte das nur so aus Langeweile versucht. Klar würde es auch mit HotkeySet gehen, aber cih würde gerne wissen, warum ganz andere Werte zurückgegeben werden als eigt. der Hex Code der Taste ist.
EDIT: Wie man es löst hab ich jetzt rausgefunden, aber da ich merke, dass du Recht damit hast, dass das sehr an einer Grundlage für einen Keylogger grenz, sag ich die Lösung mal lieber nicht.
-
_IsPressed gibt nicht die gedrückte Taste zurück... Sonst wäre der 1.Parameter ja schwachsinnig
.
-
Es gibt nur zurück ob die angegebene Taste gedrückt wurde
-
er frägt doch auch $i ab und nicht den rückgabewert von _IsPressed oder nicht?
-
Ich wollte grade rein interesse halber folgendes Versuchen:
#include <Misc.au3>
$dll = DllOpen("user32.dll")
While sleep(100)
For $i = 1 To 165
If _IsPressed(Hex($i, 2), $dll) Then
If $i = "41" Then
MsgBox(0, "", "a")
EndIf
EndIf
Next
WEnd
Wenn ich das Script jedoch starte, passiert nichts, wenn ich A drücke.Ob nun (möglicher) Keylogger oder nicht, so würde Dein Script auch etwas ausgeben:
#include <Misc.au3>
$dll = DllOpen("user32.dll")
While sleep(100)
For $i = 1 To 165
If _IsPressed(Hex($i, 2), $dll) Then
If Hex($i,2) = "41" Then ; wenn HEX-Code prüfen, dann auch DEC-$i vorher wandeln
MsgBox(0, "", "a")
EndIf
EndIf
Next
WEnd -
Nochmal als Zusammenfassung, man kann einen Hex-Wert nicht direkt mit einem Dezimal-Wert vergleichen.