4 Stimmen

Wie kann ich den Registrierungszugriff auf eine von meinem Programm geladene DLL umleiten?

Ich habe eine DLL, die ich in mein Programm lade, das seine Einstellungen liest und in die Registrierung schreibt (hkcu). Mein Programm ändert diese Einstellungen vor dem Laden der DLL, so dass es die Einstellungen verwendet, die mein Programm verwenden möchte, was gut funktioniert.

Leider muss ich mehrere Instanzen meines Programms mit unterschiedlichen Einstellungen für die DLL ausführen. Jetzt funktioniert der Ansatz, den ich bisher verwendet habe, nicht mehr zuverlässig, weil es möglich ist, dass eine Instanz des Programms die Einstellungen überschreibt, die eine andere Instanz gerade geschrieben hat, bevor die Dll sie lesen kann.

Ich habe die Quelle der fraglichen DLL nicht und kann den Programmierer, der sie geschrieben hat, nicht bitten, sie zu ändern.

Eine Idee, die ich hatte, war, die Funktionen für den Zugriff auf die Registrierung mit einem Haken zu versehen und sie auf einen anderen Zweig der Registrierung umzuleiten, der für die Instanz meines Programms spezifisch ist (z. B. die Prozess-ID als Teil des Pfads zu verwenden). Ich denke, das sollte funktionieren, aber vielleicht haben Sie ja eine andere / elegantere Lösung.

Falls es wichtig ist: Ich verwende Delphi 2007 für mein Programm, die dll ist wahrscheinlich in C oder C++ geschrieben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X