Laden...

Problem bei Keyboardhook

Erstellt von spoochie vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.381 Views
S
spoochie Themenstarter:in
155 Beiträge seit 2007
vor 16 Jahren
Problem bei Keyboardhook

Hallo, ich bin es wieder.
Ich möchte gerne einen Keyboardhook auf die Entertaste legen. Nun sind mir die Parameter von SetWindowsHookEx aber irgendwie garnicht einleuchtend, kann mir bitte einer erklären wofür die alle sind?

Den ersten weiss ich noch selber, das ist der Hooktyp aber dann stehe ich auf dem Schlach und weiss nicht weiter.
Desweiteren habe ich keine Ahnung was ein Callback ist,das hat ja irgendwas mit dem zweiten Parameter zu tun. Aber wie muss dieser Callback aussehen?
Also kurz, ich müsste wissen, wofür Parameter 2-4 da sind. Vielen Dank.
In der MSDN habe ich geschaut, da bin ich aber nicht weiter gekommen.

MfG spoochie

S
spoochie Themenstarter:in
155 Beiträge seit 2007
vor 16 Jahren

Ja das habe ich schon gesehen, aber ich habe keine Ahnung was die Parameter bedeuten sollen.

915 Beiträge seit 2006
vor 16 Jahren

Hallo Spoochie,

einen Systemweiten hook habe ich hätte ich dir unter folgenden Link. Einfach runterscrollen und du findest einen C# Keyboardhook.

Zum herausfinden welche Paramter für was zuständig sind für empfehle ich dir die Microsoft Platform SDK für Windows Server 2003 herunter zu laden. Dort ist fast alles sehr gut dokumentiert. Auch das Suchen nach entsprechenden Windowsfunktionen wird dadurch enorm erleichtert.

Die implementierung empfehle ich dir dann die Seite www.pinvoke.net zu realisieren, dort sind sogut wie alle dll imports für C# und VB zu finden.


HHOOK SetWindowsHookEx(        
    int idHook,
    HOOKPROC lpfn,
    HINSTANCE hMod,
    DWORD dwThreadId
);

int idHook:
Definiert den hook typ wie zum Beispiel den WH_KEYBOARD_LL für Windows NT und höher der dir eine Struktur mit informationen über die Tastatur zurückliefert oder einen WH_KEYBOARD hook typ der dir die Prozedurnachrichten zurückliefert usw.

HOOKPROC lpfn:
Definiert den zeiger auf denm die hook prozedur verarbeitet wird, also die Callback Methode.

hMod
Definiert den zeiger des injizierten DLL.
Da z.B eine Client-DLL wie User32 die benörigten Funktionsaufrufe besitzt, kann man auch diese Instanz in einen fremden Prozess injizierten oder eine entsprechende dynamic-link library die selbst dafür schreiben kannst. Solltest einen Hook auf deine eigene Anwendung schreiben so bleibt der Zeiger hier bei null.

dwThreadId
Definiert den Identifier für den Thread (nicht Prozess) auf dem die Hook-Prozedur ausgeführt wird. Wenn dieser Zeigerals null deklariert wird, so werden alle verarbeitenden Threads des injizierten Prozesses für die Hookprozedur verwendet.

Es gibt dazu noch mehr, aber die SDK kann dir da beweiten mehr informationen bieten als ich als ähm Handwerker unter den Programmierern 😉

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo spoochiem,

kann mir bitte einer erklären wofür die alle sind?

für sowas gibt es die Doku. Warum sollen wir die Doku "vorlesen" oder sie gar extra für dich neu schreiben? Bitte schau selber nach. Wenn du dann noch eine bestimmte Frage zu eine bestimmten Parameter hast, dann kannst du die gerne stellen.

herbivore

S
spoochie Themenstarter:in
155 Beiträge seit 2007
vor 16 Jahren

Ich habe es hinbekommen. Vielen Dank nochmal echt ein super Forum.
MfG spoochie