Seite 1 von 1
Tastendrücke systemweit erfassen
Verfasst: 19.08.2009 12:09
von Joel
Hi,
Ich brauche eine Procedure, die mir die Tastendrücke Systemweit wiedergibt, mit diesen besonderheiten:
1. Sie sollte z.B. "A" nur einmal zurück geben, auch wenn man sie länger drückt.
2. Sollte sie auch Groß udn Kleinbuchstaben Unterscheiden können.
Gibt es da Ideen, wie man das umsetzen kann?
Verfasst: 19.08.2009 14:56
von Rokur
Zum systemweiten Abfangen von Tastatureingaben gibts hier schon mehrere Threads (=>Suche) und zu deinen "Sonderwünschen":
1. Das kannst du z.B. über einen Puffer realisieren: Merk dir einfach den letzten Tastendruck, und wenn der nächste mit dem letzten übereinstimmt, ignoriere ihn.
2. Bei Tastendrücken gibt es kein groß und klein, entweder ist die A-Taste gedrückt oder nicht. Du könntest nur abfragen ob die Shift-Taste zeitgleich gedrückt ist oder ob Capslock aktiv ist.
Verfasst: 19.08.2009 17:27
von X360 Andy
Rokur hat geschrieben:
1. Das kannst du z.B. über einen Puffer realisieren: Merk dir einfach den letzten Tastendruck, und wenn der nächste mit dem letzten übereinstimmt, ignoriere ihn.
Dann wär "aa" ja nur ein "a"
[Ironie]
Für ein Keyloger ist das keine Gute Idee
Wenn jetzt mal einer einen guten Keyloger Source Online stellen würde , dann würden diese Threads abnehmen
[/Ironie]
Verfasst: 19.08.2009 20:34
von Joel
X360 Andy hat geschrieben:Rokur hat geschrieben:
1. Das kannst du z.B. über einen Puffer realisieren: Merk dir einfach den letzten Tastendruck, und wenn der nächste mit dem letzten übereinstimmt, ignoriere ihn.
Dann wär "aa" ja nur ein "a"
[Ironie]
Für ein Keyloger ist das keine Gute Idee
Wenn jetzt mal einer einen guten Keyloger Source Online stellen würde , dann würden diese Threads abnehmen
[/Ironie]
Hehe, genau
Lol, ja gut sagen wirs mal so. Wenn die Taste noch gedrückt ist, dann bekomme ich ja immer die Taste zurück. Wenn jemand die Taste nun loslässt und wieder dückt ist ja kurz ein Leerlauf drin.
<Ironie>Naja also ich werde den Code hier aufjedenfall reinstellen, für eure Keylogger. Also haltet Ausschau nach deinem "Keylogger Mein procedure" Thread im Codes Tipps und Tricks Forum

>/ironie>
Mein Proggy soll z.B. das Einstellungsfenster nur öffnen, wenn man : "Einstellungen Server" eingibt, egal, ob man in einem Spiel ist.... Mehr verrate ich aber nicht zu meiner neuen Programmidee.
Verfasst: 20.08.2009 13:44
von coder
Musst mal im Forum nach Keyboard-Hook oder auch KeyLogger suchen. (Zu letzterem gabs glaub ich wirklich mal 'ne Thread mit Codes...)
Verfasst: 20.08.2009 14:12
von Kaeru Gaman
da es noch nicht gesagt wurde:
der Rückgabewert von GetAsyncKeyState_(#vk_) hat ein bestimmtes bit gesetzt, wenn es sich um den ersten druck auf diese taste handelt.
weitere rückmeldungen vom gedrückt halten sind zwar auch #True, haben aber einen anderen Zahlenwert.
Verfasst: 20.08.2009 19:31
von X360 Andy
coder hat geschrieben:Musst mal im Forum nach Keyboard-Hook oder auch KeyLogger suchen. (Zu letzterem gabs glaub ich wirklich mal 'ne Thread mit Codes...)
http://purebasic.fr/german/viewtopic.ph ... 06&start=0 
Verfasst: 20.08.2009 20:41
von Joel
Hab sowieso schon eine code, der muss jetzt nur noch verstehen, wann groß und klein geschrieben wird.
Hier mal ein Beispiel...aber nichts böses damit machen
Code: Alles auswählen
Global Taste
Procedure Key()
For n=0 To 255
If GetAsyncKeyState_(n)
ProcedureReturn n
EndIf
Next
EndProcedure
Procedure B(d.l)
Repeat
m = Key()
If m <> 0
WertA = m
Repeat
WertB = Key()
Until WertA <> WertB
Taste = WertA
EndIf
ForEver
EndProcedure
Procedure Tasten(f.l)
B_Thread = CreateThread(@B(), 44)
Repeat
If Taste <> 0
If Taste = #VK_A
Debug "A"
EndIf
If Taste = #VK_B
Debug "B"
EndIf
If Taste = #VK_C
Debug "C"
EndIf
If Taste = #VK_D
Debug "D"
EndIf
If Taste = #VK_E
Debug "E"
EndIf
If Taste = #VK_F
Debug "F"
EndIf
If Taste = #VK_G
Debug "G"
EndIf
If Taste = #VK_H
Debug "H"
EndIf
If Taste = #VK_I
Debug "I"
EndIf
If Taste = #VK_J
Debug "J"
EndIf
If Taste = #VK_K
Debug "K"
EndIf
If Taste = #VK_L
Debug "L"
EndIf
If Taste = #VK_M
Debug "M"
EndIf
If Taste = #VK_N
Debug "N"
EndIf
If Taste = #VK_O
Debug "O"
EndIf
If Taste = #VK_P
Debug "P"
EndIf
If Taste = #VK_Q
Debug "Q"
EndIf
If Taste = #VK_R
Debug "R"
EndIf
If Taste = #VK_S
Debug "S"
EndIf
If Taste = #VK_T
Debug "T"
EndIf
If Taste = #VK_U
Debug "U"
EndIf
If Taste = #VK_V
Debug "V"
EndIf
If Taste = #VK_W
Debug "W"
EndIf
If Taste = #VK_X
Debug "X"
EndIf
If Taste = #VK_Y
Debug "Y"
EndIf
If Taste = #VK_Z
Debug "Z"
EndIf
If Taste = #VK_DELETE
Debug "...Delete..."
EndIf
Taste = 0
EndIf
ForEver
EndProcedure
Tasten_Thread = CreateThread(@Tasten(), 55)
Delay(2222)
Verfasst: 21.08.2009 00:25
von jojo1541
Ist doch an sich ganz klar, wenn Shift oder Capslock gedrückt wird, dann wird groß geschrieben, ansonsten klein.