Einzelnen Beitrag anzeigen

idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#17

Re: HILFE! Noch einmal der Tastaturhook

  Alt 6. Mai 2010, 20:00
Ich kann im Moment noch nicht sagen, ob die Übersiedlung der Hookinstallation in die DLL notwendig war, oder ob es anders auch geht. Ich werde das noch austesten, wenn meine DLL funktioniert. Der Status ist derzeit der: Mein Hook ist global, tut aber nur lokal genau was ich erwarte (d.h. wenn das Tastaturerignis an die EXE geht, die die DLL geladen hat), er tut nur teilweise das, was er tun soll, wenn das Tastaturereignis an ein anderes Programm geht. Warum das so ist, bin ich erst beim Erkunden.

Den Timer brauche ich (und er funktioniert sogar in der DLL, ich habe nur das Programm etwas umbauen müssen, weil ich in der Hookroutine selbst keinen Timer starten kann), weil ich sicherstellen will, dass ShiftLock wirkungslos bleibt, wenn 300 ms vorher bis 300ms nach dem Drücken der Shiftlock Taste eine andere Taste gedrückt wird - jetzt, während ich das schreibe, kommt mir gerade, dass ich das gleiche auch ohne Timer mit Hilfe von Timestamps überprüfen könnte (vorausgesetzt, die Funktion "now" liefert die aktuelle Zeit mit ausreichender Genauigkeit, das müsste ich mir noch anschauen).

Und gibt es dann nicht noch eine Systemfunktion, die die Anzahl der Ticks seit dem Starten des PC liefert? Ich glaube, dass ich da irgendwo am Rande einmal etwas gelesen haben. Irgendwie sollte man damit feststellen können, wie lange der PC schon in Betrieb ist.

Zitat:
Bei DLL-Injektionen werden etliche Kopien dieser DLL an andere Prozesse erstellt.
Ich verstehe nicht ganz, was Du meinst. Wenn mehrere Prozesse eine DLL laden und verwenden, dann gibt es im Speicher ein Exemplar der DLL, das mit separaten Datenbereichen für jede Instanz, die sie geladen hat, arbeitet. Aber in dem Fall eines globalen Hooks wird ja nur ein DLL Prozess gestartet, und der bekommt dann alle Ereignisse mit, egal an welchen Prozess das Ereignisse geschickt werden.
  Mit Zitat antworten Zitat