3

最新のファイルをプルダウンしてCOMコンポーネントを登録することにより、起動時に自動的に更新されるレガシーVB6アプリケーションがあります。これは、別のマシンのCOM +に登録されているローカル(zippy32)ActiveX COMコンポーネントとリモート(clireg32)ActiveXCOMコンポーネントの両方で機能します。

新しい要件により、セキュリティ上の理由からHKEY_LOCAL_MACHINE(H​​KLM)への書き込みが妨げられています。これは、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+コンポーネントを登録できるようにする他の方法はありますか?

現時点での唯一の解決策は、レジストリに登録情報を手動で書き込むことですが、これは理想的ではなく、主要な問題になります。

4

1 に答える 1

4

ここに幸せな答えはほとんどありません。更新をインストールする必要がある12年前のテクノロジーを使用するアプリの概念は奇妙なものであり、最新のマシンでは十分にサポートされていません。reg-free COMのような一般的な解決策は出ており、COM+とは互換性がないと思います。また、バグ修正スタイルの更新でコンポーネントを再登録する必要があるのもかなり奇妙です。これが実際に必要であることを確認しましたか?

そのテーマを拡張して、展開で実際にGUIDを変更する頻度はどれくらいですか。キーが絶えず変更されない場合は、コンポーネント自体に任せるのではなく、自分で登録を担当する必要があります。SysInternalsのProcMonユーティリティを使用して登録をキャプチャするのと同じくらい簡単で、代わりにHKCUキーを設定する.regファイルを作成します。

それを超えて、あなたは本当に書き込み不可能なレジストリキーへの権利を取得する必要があります。お客様から問題がない場合は、更新をインストールするスケジュールされたタスクを要求することを検討してください。システム管理者が許可すれば、アクセスを取得できます。

于 2010-06-16T20:27:21.717 に答える