Nous avons une ancienne application VB6 qui se met à jour au démarrage en extrayant les derniers fichiers et en enregistrant les composants COM. Cela fonctionne à la fois pour les composants COM ActiveX (regsvr32) locaux et les composants COM ActiveX distants (clireg32) enregistrés dans COM + sur une autre machine.Enregistrement de DLL à distance sans accès à HKEY_CLASSES_ROOT
De nouvelles exigences nous empêchent d'écrire dans HKEY_LOACL_MACHINE (HKLM) pour des raisons de sécurité, ce qui est le cas par défaut lors de l'appel de regsvr32 et clireg32.
Nous avons trouvé un moyen d'enregistrer le composant COM local sous HKEY_CURRENT_USER \ Software \ Classes (HKCU) en utilisant la méthode API Windows RegOverridePredefKey. Cela fonctionne en redirigeant les insertions dans le registre vers l'emplacement HKCU. Ensuite, lorsque les composants COM sont instanciés, Windows commence par rechercher HKCU avant de rechercher les informations de composant dans HKLM. Cela remplace ce que fait regsvr32. Le problème que nous rencontrons actuellement est lorsque nous essayons d'enregistrer VBR/TLB en utilisant clireg32, ce processus d'enregistrement ajoute également des clés d'enregistrement à HKEY_LOACL_MACHINE.
Existe-t-il un moyen de rediriger clireg32.exe pour enregistrer le composant est HKEY_CURRENT_USER? Existe-t-il d'autres méthodes qui nous permettraient d'enregistrer ces composants COM + sur les ordinateurs clients avec un accès de sécurité limité? Notre seule solution pour le moment serait d'écrire manuellement les informations d'enregistrement dans le registre, mais ce n'est pas idéal et ce serait un problème majeur.
Tous vos commentaires arrivent à la maison et nous avons poussé pour eux. Je souhaite que la réponse était un simple passage à .net chose. Tout le nouveau dev est fait dans .net, mais le reste de l'application "fonctionne" et des corrections de bugs ont lieu. Nous cherchons à le garder tel quel, sans réécriture complète. Le GUID et les interfaces ne changent pas souvent, nous avons utilisé ProcMon/Regmon pour voir ce qui se passe et c'est une alternative que nous pouvons utiliser. Comme vous l'avez mentionné, Reg Free COM ne semble pas être une alternative que nous pouvons utiliser. –