So ganz verstehe ich Dich leider immer noch nicht.
Brachte mein Vorschlag, den Hook innerhalb der
DLL zu starten, Dir nun einen spürbaren Fortschritt oder doch nicht?
Eines mußt Du auch bedenken (ich bezahlte diesbezüglich auch Lehrgeld): Bei
DLL-Injektionen werden etliche Kopien dieser
DLL an andere Prozesse erstellt. Globale Daten, die z.B. zum Injektionszeitraum vorlagen, existieren aber nur in der ursprünglichen
DLL, in den Kopien sind diese Makulatur bzw. Schall und Rauch.
Es müssen also, um sicherzustellen, daß jede injizierte Kopie die richtigen Daten erhält, diese Daten zur Laufzeit dort hineingebracht werden, bzw. die
DLL muß sich diese
DLL beschaffen. Ich tat das mit externen Dateien. Nicht die eleganteste Lösung (im Vergleich mit der Interprozeßkommunikation), hat aber den Vorteil, daß man in der Menge der Daten flexibel bleibt.
Zusammengefaßt: Hookprogrammierung ist ekelhaft, aber eine durchaus bewältigbare Herausforderung. Wenn man es geschafft hat, freut man sich umso mehr.
Edit: Mir ist zudem immer noch nicht klar, wozu ein Timer der
DLL gut sein soll, weil (Tastatur-)Hookprogrammierung genau wie vieles andere Außen(!)-Ereignisprogrammierung ist.