Keystrokes mit GetAsyncKey systemweit abfangen
-
Hallo!
Kann mir jmd erklären wie ich mit GetAyncKeyState systemweit Tastatur-Anschläge registrieren kann?
MFG
-
Gar nicht. Diese Funktion wird ja nur selektiv in dem Kontext Deines Prozesesses aufgerufen und ist ansynchron. Wenn Du wriklich systemweit alle Tastatureingaben benötigst dann musst Du einen Hook verwenden. (SetWindowHookEx)
Systemweit heißt hier dass eine DLL in alle anderen Prozesse injeziert wird.So etwas muss nicht sein! Warum willst Du das?
Genügt Dir evtl. RegisterHotKey?
-
Hi, hab mir mal n Source gesucht:
#include <windows.h> #include <iostream.h> int main() { SHORT KeyState; SHORT ArrKeyState[256]; long CheckSum; long OldCheckSum; OldCheckSum = 987654; // dummy while (1) { CheckSum = 0; for (int i = 0; i < 256; i++) { KeyState = GetAsyncKeyState(i); CheckSum += KeyState; ArrKeyState[i] = KeyState; } if (OldCheckSum != CheckSum) { for (int i = 0; i < 256; i++) { // -32767 = KeyDown if (ArrKeyState[i] == -32767) { cout << "Key " << i << " pressed. (" << (char) i << ")" << endl; } } } OldCheckSum = CheckSum; } }Kannst du mir genauer erklären wieso das nicht geht?
Mit Systemweit mein ich egal welches Fenster offen ist bzw gerade im Vordergrund ist.
Lg
-
Der gute Herr Richter hat dir doch erklärt warum das nicht geht. Weil GetAsyncKeyState nur auf dein Prozess also auf dein Fenster geht. Wenn du Systemweit (egal welches Fenster) dann brauchst du ein Hook. Dafür gibt es genug Bsp im Netz.
Oder was meinst du mit genauer Erklärung?MfG schirrmie
-
schirrmie schrieb:
Der gute Herr Richter...
Ui soviel Förmlichkeit ist man hier gar nicht gewöhnt! :xmas1:
-
Jaja ich checks schon nur hab ich mir jetzt an die 4,5 verschiedenen Sources von Keyloggern angesehen (systemweite) und jeder verwendet Asynckeystate.
Deswegen hab ich genau nachgefragt.
Mfg
-
Ja aber was funktioniert denn nun nicht? Dein code Funktioniert so wie er ist weil er so ist wie er ist (ach ist das dumm
)
Das er nicht Systemweit funktioniert liegt daran das du kein Hook hast. Dafür brauchst du ne dll usw. Oder Versteh ich dich jetzt nicht
@Martin Richter:
Ich find das klingt gut. Und du bist ja einer der Hilfsbereitesten hier (alle anderen fühlt euch nicht ausgeschlossen, wenn die Zeit kommt schlag ich auch bei euch zu :p ) da kann man das schonmal sagen
MfG schirrmie
-
Mal ne Frage, geht das eigentlich mit DirectInput? Sollte ja auch Systemweit gehen wenn ich mich jetzt nicht irre, was aber zugegebenermassen der Fall sein kann, weil ausprobiert hab ichs noch nicht.
Würde man sich halt den Hook ersparen - der ja entweder ne DLL in jeden Prozess reinfummelt (beim "nicht low-level" Hook) oder eben nen mords Overhead bedeutet, und nichtmal garantiert ist dass der Hook einen Effekt hat, nämlich dann nicht wenn man zu lange braucht (der "schon low-level" Hook).
-
Hi Leute:
ES GEHT!
lol habs getestet egal wo ich was eintippe es wird abgefangen und protokolliert.
Hab nur folgendes Problem:
Wenn der STATE = 0 is oder was weiss ich was also wenn grad keine Taste gedrückt wird wird ein in die file geprinted.
Wie mach ich das weg??
Kennt jmd den ASCII Code von diesem Zeichen??
Lg
-
So Leute hab das jetzt mal gefixed. (sofern man das überhaupt fixen nennen kann)
Nur noch eine Frage:
Wie kann ich beim Code oben auch Klein und Großbuchstaben unterscheiden??
Lg