Low Level Keyboard Hook



  • Danke für den Link.

    Aber eigentlich dürfte hHook sehr wohl einen Wert haben:
    DLL_PROCESS_ATTACH wird ein einziges Mal ausgelöst (von meiner Anwendung).
    Ich habs gerade nochmal überprüft.
    => Es gibt nur eine einzige DLL-Instanz

    Außerdem müsste KeyboardProc() von Windows ja erstmal aufgerufen werden, dann könnte man nachschauen ob hHook NULL ist oder nicht, aber es wird ja nicht mal aufgerufen...

    Übrigens wird das ganze in der FAQ auch so gemacht.



  • hooks sind nix für kinder. wenn ihr sie schon verwenden wollt, dann lest wenigstens die paar seiten auf der msdn dazu durch. dauert 15 minuten und dann sind 9 von 10 fragen schon von selbst beantwortet 👎

    the WH_KEYBOARD_LL hook is not injected into another process. Instead, the context switches back to the process that installed the hook and it is called in its original context. Then the context switches back to the application that generated the event.



  • Der Text, den du geposted hast, habe ich auch schon gelesen: http://msdn.microsoft.com/en-us/library/ms632589(VS.85).aspx.

    Ich habe in meinem ersten Post bereits angedeutet, dass ich schon überall gesucht habe, die MSDN war natürlich auch dabei!
    Leider erkenne ich meinen Fehler durch diesen Text nicht.

    Abgesehen davon warst du sicher auch nicht von Anfang an ein Profi im Umgang mit Hooks...



  • So, ich habe jetzt herausgefunden woran es lag:
    Die Anwendung, die die DLL benutzt hat, habe ich per Sleep(INFINITE) provisorisch am schließen gehindert - Wenn man einfach stattdessen z.b. eine MessageBox einbaut, die man nicht schließt, funktioniert alles.



  • Tip:

    um Tasten zu remappen gibt es ein tool das heißt remapkey (glaub ich), das ist in dem kostenlosen windowe server2003 ressource kit, dass auch unter winxp benutzt werden kann.


  • Mod

    Ein Remap ist auch über [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
    möglich.



  • ascda schrieb:

    the WH_KEYBOARD_LL hook is not injected into another process. Instead, the context switches back to the process that installed the hook and it is called in its original context. Then the context switches back to the application that generated the event.

    Tatsächlich; ich hatte vergessen, daß die Lowlevel-Hooks gar nicht injiziert werden. Dann ist mein obiger Hinweis natürlich hinfällig.

    Martin Richter schrieb:

    Ein Remap ist auch über [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
    möglich.

    Liest du eigentlich auch, was vor dir gepostet wurde?


  • Mod

    audacia schrieb:

    Martin Richter schrieb:

    Ein Remap ist auch über [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
    möglich.

    Liest du eigentlich auch, was vor dir gepostet wurde?

    Ja! Was hast Du für ein Problem mit meiner Antwort?

    Wenn es um einen allgemeinen Remap geht, ist das eben weitaus einfacher zu machen. Im Schreiben des OP kann ich nicht sehen, dass er dies nicht evtl. permament machen möchte.



  • Ganz zufällig hatte ich im zweiten Post des Threads auf einen Artikel verlinkt, der die Verwendung des von dir genannten Registry-Keys erklärt 😉


  • Mod

    audacia schrieb:

    Ganz zufällig hatte ich im zweiten Post des Threads auf einen Artikel verlinkt, der die Verwendung des von dir genannten Registry-Keys erklärt 😉

    Upps Sorry! Den hatte ich gelesen, aber nich angesehen.


Anmelden zum Antworten