Tastendruck über Hook simulieren

Hi,

in folgendem Thread http://www.hackerboard.de/thread.php?postid=245789#post245789, habe ich gefragt, wie man einen Tastendruck des Keyboards auf möglichst niedrigem Level simulieren kann. Eine Antwort war:
mit low level hooks.

Ich hab mich inzwischen ein wenig ins Thema Hooks eingelesen, verstehe allerdings nicht, wie ich damit keys senden kann und zwar komplett computergesteuert und ohne Tastatureingaben, die ich vorher abfangen muss. Ich hab imemr nur gelesen, dass man damit Tastatureingaben abfagen kann.

Wäre dankbar für jeden Tipp

mfg

gargamel
 
Tastendruck-Nachricht senden

Im allgemeinen sendet man sowas per "PostMessage". Diese Funktion arbeitet auf dem gleichen "level" wie die Funktionen zum Abfangen derselben. Die "Hooks" zum Anfangen von Nachrichten sind nämlich nichts weiter als - ja: eben solche. Wenn Du tiefer gehen willst, mußt Du auf das Hardware-Niveau runter (also den Tastaturtreiber).

EIGENTLICH müßte es bei einem anständigen Betriebssystem noch ein Zwischenlevel zwischen Hardware-Adapter und dem Verteiler auf die laufenden Prozesse geben. Danach habe ich mich allerdings vor einiger Zeit auch schon mal kaputtgesucht. Im "normalen" Windows-API halte ich sowas jedenfalls nicht mehr für wahrscheinlich. (Ich hatte soweit das "user interface" und die "system services" durchwühlt...: http://msdn2.microsoft.com/en-us/library/aa139672.aspx)

Du könntest versuchen, direkt in einem Microsoft-eigenen Forum nachzufragen.

-----

Das Thema an sich finde ich durchaus interessant.
Ich habe nochmal reingelesen in die MSDN...

Auch auf Ebene von Desktops und Windows Stations scheint alles auf das Prinzip der Message Queues ausgelegt zu sein. Wenn es um Prozesse geht, die auf Ebene dieser Dinger die Nachrichtenverarbeitung übernehmen sollen, heißt es immer wieder: "müssen in der Lage sein, Nachrichten zu empfangen". Wobei nie erläutert ist, was darunter zu verstehen ist. Aber aller Wahrscheinlichkeit nichts anderes als einfache Message Queues, die man anlegen kann und muß. Und die werden irgendwie wahrscheinlich direkt aus dem Prozeßverteiler gefüttert. Da dieser auf Ebene von CPU-Ring 0 läuft, kann und soll man von den Anwendungen nicht darauf zugreifen. Man braucht für sowas schon einen "richtig" Low-Level-Treiber. Und dann braucht man eine vernünftige Dokumentation zu Tastaturtreibern.

Bis vor etwa drei Jahren war das "DDK" von Microsoft, das zwingende Voraussetzung ist, um sowas überhaupt als Idee angehen zu können, dermaßen saumäßig teuer (und mit jeder Windows-Version neu zu erstehen), daß ich dieses Level noch nie in Angriff nehmen konnte (außer bis Windows 98, und dort sogar recht leicht). Wie das heute steht, weiß ich nicht. Da wären weitere Zuarbeiten gefragt...
 
Zurück
Oben