0

VB6 で構築された ERP アプリケーションがあり、何人かの顧客がすべてのシステムを Win7 にアップグレードするまで問題なく動作していました。

このソフトウェアは、実行時に COM ベースのいくつかのプラグイン (プラグイン フォルダにあります) を登録するようにプログラムされています。互換モードと管理者として実行を設定せずにユーザーがソフトウェアを実行すると、ソフトウェアは失敗してクラッシュします。

プログラムの実行可能ファイルを右クリックしてそのプロパティに移動することで、互換モードと管理者の実行の両方を手動で設定できることを知っています。しかし、これは非常に専門的ではないようです。

Windows 7 にソフトウェアを自動的に互換モード実行し、管理者として実行するように指示する方法があると思います。

私を助けてください。

4

3 に答える 3

1

互換性は管理機能であり、開発または展開機能ではありません。可能な場合はアプリケーションを修正することをお勧めします。特に、昇格の要件を削除することをお勧めします。

問題を調査して修正できるツールはたくさんあります。ただし、実行時に「プラグイン」をグローバルに登録するのは面倒です。VB6 コンポーネントの自己登録は、レジストリの仮想化によってリダイレクトされない限り、常にグローバルです。インストール中に一度昇格して実行できるプラグインのインストーラーを作成しないのはなぜですか?

インストールの一部であっても、互換性を手動で設定する方法はいくつかありますが、Microsoft はこれを推奨していません。多分見てみましょう:

互換性修正データベースの管理戦略と展開

ただし、必要な労力は、問題の修復に費やす方がよい場合があります。サポート コストは時間の経過とともに少なくなります。

于 2011-08-16T22:04:36.070 に答える
1

他の回答が言っているように、常に昇格して実行する必要はありません。起動後にプラグインを登録する場合 (通常のユーザーとして)、ShellExecute() を「runas」動詞と共に使用して regsvr32.exe を実行するか、以前に何度も説明したCOM 昇格を使用できます。

于 2011-08-24T10:45:13.413 に答える
0

アプリケーション マニフェストでアプリケーションを指定することにより、アプリケーションを管理者として実行する必要があることを示すことができます。このアプリケーション マニフェストは、アプリケーションに埋め込むか、アプリケーションにデプロイできる xml ファイル内にあります。

アプリケーションが管理者権限で実行されると、プラグインを登録してロードできるようになります。COM プラグインにアクセスするために互換モードで実行する必要はありません。

于 2011-08-18T19:59:19.793 に答える