Keyboardhook
-
ist das die einzige möglichkeit? Wenn ja wie soll das gehen wtf?
-
könnte sich bitte Martin oder Jochen dazu äußern?
-
Was genau hast Du für ein Problem? Was möchtest Du denn erreichen?
Martin
-
dialog5000 schrieb:
welchen weg würdet ihr gehen, die Tastatur aufzunehmen?
Ein Keyboardhook wäre möglich, jedoch kann man bei diesem nur große Buchstaben abfragen.
Eine andere möglickeit wäre GetAnsyncKeyState. Jedoch soll diese Funktion SEHR unzuverlässig sein. Diese würde jedoch auch kleinbuchstaben aufzeichenn.
Gibt es noch eine Optimale lösung oder wie würdet ihr das machen?
dankeKeyboard Hooks zeichenn alles auf und wenn Du die Doku richtig lesen würdest, dann wüsstest Du auch zu unterscheiden zwischen Groß+Kleinbuchstaben.
GetAsynchKeyState hat in einem Hook gar nichts zu suchen! Und GetAsynchKeyState zeichnet gar nichts auf!Schon mal mit www.gidf.de versucht?
Schon mal http://www.codeproject.com/KB/applications/hookmanager.aspx angesehen.PS:
Warum müssen alle Anfänger immer gleich mit den richtig schwierigen Sachen anfangen?
Und warum sollen Jochen oder ich darauf antworten?
Ich antworte gerne wenn ich das Gefühl habe, der Fragende hat sich um das vorhandene Knowhow bereits bemüht. Das kann ich aktuell nicht von Deiner Fragestellung ersehen.
-
Martin Richter schrieb:
Und warum sollen Jochen oder ich darauf antworten?
weil ihr 2 die einzigen Profis seit und richtig Ahnung habt, von dem was ihr sagt
-
wie zuverlässig ist GetAnsyncKeyState() denn? ich weiß das dass nichts mit hooks zu tun hat aber es nimmt trotzdem die tastatur auf. Bei mir klappt es eigentlich immer obwohl jeder sagt es ist so unzuverlässig. Vielleicht klappt es nur auf fremden pcs nicht oder was ist bei der Funktion das problem
-
Überleg mal selber:
GetAsynchKeyState pollt nur die Tastatur. Das heißt die schaust in bestimmten Abständen nach, ob eine Taste gedrückt wurde.
1. Du kannst nicht feststellen ob eine Taste in der zwischenzeit zweimal gedrückt wurde.
2. Du kannst nicht feststellen ob Du in der Zwischenzeit nicht einen Tastendruck komplett verloren hast.
3. Ist es ineffektiv, weil Du immer ale tasten prüfen müsst.Da die Tastatur nur sehr kurz angetippt wird ist also der Verlust von Infos vorprogrammiert...
-
An sich ist GetAsyncKeyState() zuverlässig - Zum Keylogger-Bau eignet es sich meiner Meinung nach aber eher nicht.
Packt man das in ne Schleife hängt es halt von der Rechnerauslastung und dem sonstigen Code drum herum ab ob GetAsyncKeyState() den Tastendruck auch mitbekommt.(Edit: Verdammt war ich langsam für so wenig Text ;D)
-
GetAsyncKeyState ist 100% zuverlässig.
Nur eben nicht um alle Tasten mitzubekommen.
Aber es liefert zu 100% den *aktuellen* Zustand der Tastatur. Und genau das soll die Funktion auch machen...
-
das heißt ihr würdet mir einen Keyboardhook empfehlen???
Dazu braucht man aber leider eine Dll...
-
dialog5000 schrieb:
das heißt ihr würdet mir einen Keyboardhook empfehlen???
Dazu braucht man aber leider eine Dll...Was willst Du eigentlich bauen?
Zudem habe ich Dir doch einen Beispielcode für einen Hook gegeben.
Was fehlt Dir denn noch?Wenn Dir das zu komplitziert ist, dann fang besser mit was leichterem an. Das würde ih grundsätzlich anraten! Jeder Anfänger in diesem Forum muss immer gleich irgendwas mit einem Hook bauen, ich verstehe das nicht...

-
Martin Richter schrieb:
dialog5000 schrieb:
das heißt ihr würdet mir einen Keyboardhook empfehlen???
Dazu braucht man aber leider eine Dll...Was willst Du eigentlich bauen?
Zudem habe ich Dir doch einen Beispielcode für einen Hook gegeben.
Was fehlt Dir denn noch?Wenn Dir das zu komplitziert ist, dann fang besser mit was leichterem an. Das würde ih grundsätzlich anraten! Jeder Anfänger in diesem Forum muss immer gleich irgendwas mit einem Hook bauen, ich verstehe das nicht...

ich bin kein Anfänger. Ich weiß wie man einen Keyboardhook macht. Dazu gibt es ja auch einen guten FAQ Thread. Ich wollte mir nur eben informieren ob dieser auch effizienter und sinnvoller ist wie GetAsyncKeyState(). Soll ein Logger werden. (nur zur übung hab nix böses vor)
-
Wenn Du wirklich loggen willst brauchst Du einen Hook!
Wenn Du kein Anfänger bist, sollte Dich keine DLL schrecken und die Informationen die Du hast müssten bei weiten ausreichend sein. Weiterhin sollte Dir als fortgeschrittenen Nutzer CodeProject bekannt, sein, auf das ich Dich auch hingewiesen habe.
Schmeißt man dortene Suche an:
http://www.codeproject.com/info/search.aspx?artkw=keyboard+hook&sbo=kw
ist der erste Artikel gleich eine komplette Lösung:
http://www.codeproject.com/KB/system/KeyHook.aspx