最新のファイルをプルダウンしてCOMコンポーネントを登録することにより、起動時に自動的に更新されるレガシーVB6アプリケーションがあります。これは、別のマシンのCOM +に登録されているローカル(zippy32)ActiveX COMコンポーネントとリモート(clireg32)ActiveXCOMコンポーネントの両方で機能します。
新しい要件により、セキュリティ上の理由からHKEY_LOCAL_MACHINE(HKLM)への書き込みが妨げられています。これは、zippy32およびclireg32を呼び出すときにデフォルトで明らかに発生することです。
RegOverridePredefKey Windows APIメソッドを使用して、HKEY_CURRENT_USER \ Software \ Classes(HKCU)の下にローカルCOMコンポーネントを登録する方法を考え出しました。これは、レジストリへの挿入をHKCUの場所にリダイレクトすることで機能します。次に、COMコンポーネントがインスタンス化されると、WindowsはHKLMでコンポーネント情報を探す前に、まずHKCUを調べます。これは、zippy32が行っていることを置き換えます。
現時点で発生している問題は、clireg32を使用してVBR / TLBを登録しようとしたときに、この登録プロセスによってHKEY_LOACL_MACHINEに登録キーも追加されることです。
clireg32.exeをHKEY_CURRENT_USERである登録コンポーネントにリダイレクトする方法はありますか?セキュリティアクセスが制限されているクライアントマシンにこれらのCOM+コンポーネントを登録できるようにする他の方法はありますか?
現時点での唯一の解決策は、レジストリに登録情報を手動で書き込むことですが、これは理想的ではなく、主要な問題になります。