Was die Registrierung pro Benutzer schreibt
Die Registrierungseinträge, die regsvr32 /n /i:user für Wkl.Forms.ObjectLibrary.dll schreibt, was
regsvr32 /u /n /i:user entfernt und welche ähnlichen Einträge stattdessen zu Office gehören. Damit prüfen Sie, ob
ein PC nach dem Aufheben der Registrierung sauber oder nach dem Registrieren vollständig ist. Die Schritte selbst
stehen unter Freigegebenes Paket installieren.
Registrierungsansichten
Eine 32-Bit- und eine 64-Bit-Registrierung sind bei den Klassen-IDs getrennt und beim Übrigen gemeinsam:
| Teil | 32 Bit (x86-DLL) | 64 Bit (x64-DLL) |
|---|---|---|
| Klassen | HKCU\Software\Classes\WOW6432Node\CLSID\{class id} | HKCU\Software\Classes\CLSID\{class id} |
| ProgIDs | HKCU\Software\Classes\WklForms.<Name> (ein Schlüssel für beide) | derselbe Schlüssel |
| Typbibliothek | HKCU\Software\Classes\TypeLib\{A37D549E-FCD0-48EC-8B14-C7323B747E4F}\<version>\0\win32 | derselbe Schlüssel, Unterschlüssel 0\win64 |
<version> ist das Release x.y in hexadezimaler Schreibweise: 1.56 ist 1.38. Ein Programm beliebiger Bitversion,
das die 32-Bit-Ansicht der Registrierung liest (RegistryView.Registry32), sieht die Schlüssel unter WOW6432Node
als CLSID.
Was das Registrieren schreibt
| Schlüssel | Werte und Unterschlüssel |
|---|---|
CLSID\{class id}, einer je Klasse | Standardwert: Beschreibung; InprocServer32 (Standardwert: vollständiger Pfad der DLL, ThreadingModel = Apartment); ProgID; TypeLib (die Bibliotheks-ID); Version (x.y des Releases) |
| derselbe, für jedes Steuerelement | zusätzlich Control, MiscStatus (und MiscStatus\1), Implemented Categories mit den Kategorien Steuerelement, sicher für Skripterstellung {7DD95801-9882-11CF-9FA9-00AA006C42C4} und sicher für Initialisierung {7DD95802-9882-11CF-9FA9-00AA006C42C4}, sowie ToolboxBitmap32, wo das Steuerelement ein Toolbox-Bild hat |
WklForms.<Name>, einer je Klasse | Standardwert: Beschreibung; CLSID = die Klassen-ID |
TypeLib\{A37D549E-...}\<version> | Name „WKL Forms x.y Object Library“; 0\win32 oder 0\win64 = Pfad der DLL; FLAGS; HELPDIR = Ordner der DLL |
Interface\{interface id}, einer je Schnittstelle der Typbibliothek | von Windows (RegisterTypeLibForUser) zusammen mit der Typbibliothek geschrieben |
Release 1.60 registriert in jeder Bitversion 49 Klassen, davon 24 Steuerelemente. Das Registrieren entfernt außerdem jede andere Version der Typbibliothek derselben Bitversion, sodass je Bitversion nur eine Version registriert bleibt. Eine Datenbank oder ACCDE, die gegen ein älteres Release gebaut wurde, öffnet sich weiterhin: Access bindet den Verweis über die Bibliotheks-ID und die Hauptversion (1) und nimmt deshalb die neuere registrierte Version. Der umgekehrte Fall – eine Datenbank, die gegen ein neueres Release gebaut wurde, auf einem PC mit einem älteren – wird nicht unterstützt: Er kann scheitern (Verweis NICHT VORHANDEN, Fehler 459) und ist auch dort nicht zugesichert, wo er zu funktionieren scheint (siehe „Reihenfolge eines Updates“ in Anwendung mit WKL-Steuerelementen auf Benutzer-PCs verteilen).
Was das Aufheben der Registrierung entfernt
regsvr32 /u /n /i:user mit der DLL einer Bitversion entfernt:
- die
CLSID-Schlüssel ihrer Klassen in der Ansicht ihrer Bitversion; - die ProgID-Schlüssel, außer denen, deren Klasse in der anderen Ansicht noch registriert ist (das Aufheben der x86-Registrierung lässt die ProgIDs einer verbleibenden x64-Registrierung bestehen);
- die Version der Typbibliothek der DLL für ihre Bitversion, mit den
Interface-Schlüsseln, die Windows dafür geschrieben hat (UnRegisterTypeLibForUser).
Heben Sie die Registrierung beider Bitversionen auf, um alles zu entfernen. In keiner der beiden Richtungen wird etwas
in HKEY_LOCAL_MACHINE geschrieben.
Einträge, die nicht zur Registrierung gehören
Diese Einträge bleiben nach dem Aufheben der Registrierung bestehen und sind kein Zeichen einer unvollständigen Entfernung:
- Typbibliotheken mit dem Namen „WKL Forms x.y Object Library“ unter anderen Bibliotheks-IDs, deren
0\win32auf%TEMP%\VBE\WklForms.exdoder%APPDATA%\Microsoft\Forms\WklForms.exdzeigt. Office schreibt sie als Cache, wenn VBA oder eine UserForm die Steuerelemente lädt; die Registrierung schreibt und entfernt sie nicht. Office legt sie bei Bedarf wieder an. - Das Access-Add-In (
HKCU\Software\Microsoft\Office\Access\Menu Add-Ins\WKL ...) wird von der eigenen Installation des Add-Ins (tools\install-addin.ps1) geschrieben, nicht von der Registrierung. - WKL Office JSON (
WklJSON.JDoc, eigene Typbibliothek „WKL Office JSON 1.0“) ist eine eigenständige Bibliothek mit eigener Registrierung; siehe deren Dokumentation.