C# で登録済みの COM サーバーのパスをプログラムで取得する良い方法はありますか?
C# プロジェクトで参照するプロセス外 COM サーバー (つまり、exe ファイル) があります。ただし、特定の場所から COM サーバーを実行することを強制したいので、開始する前に登録済みの exe ファイルのパスを確認したいと考えています。レジストリに飛び込む以外に、これを行う良い方法はありますか?
C# で登録済みの COM サーバーのパスをプログラムで取得する良い方法はありますか?
C# プロジェクトで参照するプロセス外 COM サーバー (つまり、exe ファイル) があります。ただし、特定の場所から COM サーバーを実行することを強制したいので、開始する前に登録済みの exe ファイルのパスを確認したいと考えています。レジストリに飛び込む以外に、これを行う良い方法はありますか?
関数QueryPathOfRegTypeLibはまさにそれを行います。
ただし、奇妙な癖に気付きました。
ユーザーごとに 1 つのパスから最初に登録した場合:
c:\Path1\comserver.exe /regserverperuser
次に、システム レベル ベースで別のパスから登録します。
c:\Path2\comserver.exe /regserver
次に、QueryPathOfRegTypeLib は c:\Path1\comserver.exe を返しますが、実際には、タイプ ライブラリをロードしたときに開始されるのは c:\Path2\comserver.exe です...