3 Stimmen

Warum wird meine DLL nur für einen Benutzer registriert?

Ich habe eine Shell-Erweiterung unter Verwendung von EZShellExtensions.net geschrieben. Es funktioniert super in meiner Entwicklungsumgebung, wenn ich als ich eingeloggt bin, sowie auf jedem anderen System, wenn ich als ich eingeloggt bin. Für alle anderen Benutzer erscheint der von mir erstellte Copy-Hook nie. Ich habe NirSoft's RegDLLView verwendet, um zu überprüfen, ob die DLL registriert ist, aber kein Glück.

Was kann ich überprüfen, um herauszufinden, warum dies passiert?

FYI

Ich sende gerne eine Kopie meines Codes an alle, die dabei helfen möchten. EZShellExtensions.NET hat eine Evaluierungsfrist von 30 Tagen.

UPDATE ProcMon-Ausgabe beim Verwenden des Registrierungstools des Anbieters jetzt als CSV/PML-Datei verfügbar, falls jemand daran interessiert ist.

RESOLVE

Ich habe Konsolenausgaben zur DLL für Debugging hinzugefügt. Es stellte sich heraus, dass ein Timer nicht gestartet wurde, wenn als beliebiger Benutzer außer mir ausgeführt wurde (keine Ahnung warum). Dies wurde inzwischen behoben.

3voto

Hans Passant Punkte 894572

Dies deutet darauf hin, dass die Shell-Erweiterung im HKCU\Software-Hive registriert wurde, anstatt im HKLM\Software-Hive. Nur letzteres Hive macht Erweiterungen für alle Benutzer verfügbar. Dies geschieht häufig, weil die Benutzerkontensteuerung das Schreiben in HKLM\Software verhindert, es sei denn, das Programm, das das Schreiben durchführt, ist erhöht.

Wenn diese Bibliothek mit einem dedizierten Registrierungsprogramm geliefert wird, was in der Regel der Fall ist, stellen Sie sicher, dass Sie es von einer erhöhten Eingabeaufforderung ausführen. Start + Alle Programme, Zubehör-Ordner, mit der rechten Maustaste auf den Link Eingabeaufforderung klicken und "Als Administrator ausführen" wählen. Führen Sie das Registrierungstool erneut aus.

Wenn Sie weiterhin Probleme haben, kann das ProcMon-Tool von SysInternal Ihnen genau zeigen, wohin die Daten geschrieben werden. Und zögern Sie nicht, die Supportkanäle des Anbieters zu nutzen.

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