Ich habe einige Zeit mit Selbstregistrierung gearbeitet. Dann spart man sich das registrieren auf jedem Rechner.
Dafür brauchte man eine Manifest Datei (pro Module) mit ein paar kryptischen Einträgen.
Keine Ahnung ob das mit so schrecklich modernen Windows noch geht.
Ich bin dann jedenfalls auf andere Komponenten umgestiegen da irgendwann die Komponenten nach jedem Patchday ein anderes verhalten hatten.
Stichwort zur Technik ist
Windows SXS (Side by Side).
ProgramName.manifest:
Code:
<?
xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-
com:
asm.v1" manifestVersion="1.0">
<assemblyIdentity name="ProgrammName.exe"
version="1.0.0.0"
type="
win32"
processorArchitecture="x86"/>
<trustInfo xmlns="urn:schemas-microsoft-
com:
asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<!--file name="Clay.ocx">
<comClass
description="Yellow, green or brown clay"
clsid="{CCB32152-B81E-11D2-AB74-0041234C3007}"
threadingModel="Apartment"
progid="Modules.Clay"
tlbid="{CCB32150-B81E-11D2-AB74-0041234C3007}" />
<typelib tlbid="{CCB32150-B81E-11D2-AB74-0041234C3007}" version="1.0" helpdir="" flags="HASDISKIMAGE"></typelib>
</file-->
<dependency>
<dependentAssembly>
<assemblyIdentity name="Clay.sxs" version="1.0.0.0" type="
win32" />
</dependentAssembly>
</dependency>
</assembly>
Clay.sxs.manifest
Code:
<?
xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-
com:
asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="
win32"
name="Clay.sxs"
version="1.0.0.0" />
<file name="Clay.ocx">
<comClass
description="Yellow, green or brown clay"
clsid="{CCB32152-B81E-11D2-AB74-0041234C3007}"
threadingModel="Apartment"
progid="Modules.Clay"
tlbid="{CCB32150-B81E-11D2-AB74-0041234C3007}" />
<typelib tlbid="{CCB32150-B81E-11D2-AB74-0041234C3007}" version="1.0" helpdir="" flags="HASDISKIMAGE"></typelib>
</file>
<!--comInterfaceExternalProxyStub name="IOInterfaceEvent" iid="{CCB32153-B81E-11D2-AB74-0041234C3007}" tlbid="{CCB32150-B81E-11D2-AB74-0041234C3007}"></comInterfaceExternalProxyStub-->
</assembly>