Wieder mal Keyboard-Hooks



  • Chris_ schrieb:

    Projekt-Code: (Auszug, edit kpeter)

    USELIB("keydll.lib"); //<- Hab ich jetzt per Hand eingefügt, obwohl ich die
                          //   Lib-Datei dem Projekt hinzugefügt habe(Projekt->dem..
    //---------------------------------------------------------------------------
    

    Diesen Eintrag sollte die IDE selbst vornehmen, wenn man zum Projekt die Lib hinzufügt.

    Aber noch mal zu deinem Eingangspost. Wie ist das zu verstehen:

    Chris_ schrieb:

    ich habe die drei quellcodes aus der FAQ zum thema kopiert und die dll "keydll.dll" und "keydll.lib" endgültig erstellt...

    Hast du das jeweils komplett in einem Stück in die Dateien kopiert?
    Dann wäre die erste Fehlermeldung zu verstehen, denn das Original-Form aus der FAQ nennt sich TKeyHookForm und nicht TForm1.

    Dann wette ich beinahe 1000:1, dass im Objektinspektor die Ereignisse deines Formulares leer sind. 😞



  • kpeter schrieb:

    Diesen Eintrag sollte die IDE selbst vornehmen, wenn man zum Projekt die Lib hinzufügt.

    Ich weiß, dass sie das tun sollte, tut sie aber nicht...

    Mit dem "kopiert" meinte ich natürlich nicht den kompletten quellcode kopiert und den ausgangsquellcode komplett überschrieben...

    Auch die Ereignise im Objektinspekter meiner Form sind natürlich nicht leer

    Chris_

    Edit: Habs nochmal komplett neu gemacht: Jetzt kommt beim starten des Programmes die Meldung "ProcAddress:0",(um auf deine vorherige Frage zurückzukommen), aber ein Tastendruck wird immer noch nicht aufgenommen 😞



  • Sorry, wäre auch zu arg gewesen 😉



  • ja schon...
    Sonst noch ne Idee???



  • Noch ein möglicher Test (selbe Stelle wie zuvor)

    //----------- TEST -----------
       HMODULE kdll = GetModuleHandle("keydll.dll");
       ShowMessage("ModuleHandle: " + IntToStr(int(kdll)));
    

    Wert grösser Null muss angezeigt werden, wenn DLL gefunden.

    Edit: ProcAddress muss auch grösser Null sein.



  • ProcAddress: 137720
    ModuleHandle: 131072

    Von Tastendruck immer noch keine Spur...

    Chris_



  • Schon mal gut 🙂 Woran hats denn gelegen bisher?

    Eigentlich sollte nun die Hook-Message verarbeitet werden (egal, in welches Programm/Editor du gerade etwas reintippst).

    Prüfe mal die Werte in der Funktion CheckKey...



  • kpeter schrieb:

    Woran hats denn gelegen bisher?

    Eigenleben des BCB... 😃

    kpeter schrieb:

    Prüfe mal die Werte in der Funktion CheckKey...

    wie kann ich das machen? auch über den debugger?

    Chris_



  • Habe das FAQ-Beispiel gerade mal im BCB2009 auf WinXP nachgebaut, funktioniert auf Anhieb.
    Der FAQ-Eintrag stammt aus BCB5-Zeiten, an der BCB-Version liegt es also nicht.



  • Danke an Jansen!!!

    Bin mir auch sicher, dass es an MIR liegt, ich weiß eben nur nicht WAS ich falsch mache... 😕



  • @Jansen, hallo.
    Habe den Code auch in zwei BCB-Versionen aufgesetzt: BCB 3 pro und auch BCB 2009. Hat auch auf Anhieb funktioniert, deshalb wundert mich das alles etwas.

    @Chris_, schreib einfach auch eine ShowMesssage wie schon oben gezeigt. Setze die Werte entsprechend. Der einfachste Weg erstmal.

    Fang beim Fensterhandle an; die DLL muss jetzt das Formular finden...



  • 1000Dank an alle!!!

    Habs jetzt hinbekommen
    Mein Fehler, sorry, dass ihr eure zeit verschwendet habt!!

    nochmals danke, Chris_



  • Nun musst du aber auch sagen, woran es lag.
    Vielleicht kann man noch einen entsprechenden Hinweis in die FAQ mit aufnehmen.



  • Chris_ schrieb:

    1000Dank an alle!!!

    Habs jetzt hinbekommen
    Mein Fehler, sorry, dass ihr eure zeit verschwendet habt!!

    nochmals danke, Chris_

    Nun dürfen wir alle 3 X RATEN, was das Problem war !

    Naja, gute Nacht allerseits 😃

    EDIT: 1. x raten : Das Formular hiess anders als TKeyHookForm



  • Ja, die Form heißt anders 😃 , aber das war nicht das Problem!
    Das DLL-Projekt hieß falsch... 🙂

    Nochmals Danke

    Chris_


Anmelden zum Antworten