AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi HILFE! Noch einmal der Tastaturhook
Thema durchsuchen
Ansicht
Themen-Optionen

HILFE! Noch einmal der Tastaturhook

Ein Thema von idefix2 · begonnen am 2. Mai 2010 · letzter Beitrag vom 16. Mai 2010
Antwort Antwort
idefix2

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

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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz