1

カスタム拡張子のファイルにデータを保存する簡単なプログラムを C# で作成しました。ファイルはユーザーの PC のどこにでも保存でき、ユーザーは毎回異なるデータ ファイルをロードできます。

プログラムを exe ファイルに組み込み、サード パーティのインストーラーを使用して展開します。インストーラーは基本的にexeファイルとその依存関係を、ユーザーが実行できる1つのインストールexeファイルにパックします

ユーザーがインストール ファイルを実行すると、基本的なインストールが開始されます。ライセンスに同意し、インストール パスを選択します。</p>

プログラムとその依存関係は、選択したインストール パスに解凍されます。

ここで、プログラムで使用するカスタム ファイル拡張子を、プログラムで常に開くように関連付けたいと考えています。

私が見つけた最も簡単な解決策は、プログラムのインストール後に実行されるbatファイルを使用することでした(これはサードパーティのインストーラーによって処理され、batファイルを依存関係として追加するだけです)。

Bat ファイルは、基本的に次のように Assoc および Ftype コマンドを実行するだけです。

Assoc .MyExtension=MyProgram
Ftype MyProgram="Absolute Path" "%%1"

しかし、それには2つの問題があります:

1) このコマンドには管理者権限が必要です。これは、クライアントが取得するのに問題があります。

2)Ftypeコマンドにはインストールパスへのフルパスが必要ですが、インストールパスはユーザーがインストール時に決定するため、相対パス(batファイルの隣)しかありません。

;tldr;

私の質問は次のとおりです。

1) 管理者の許可なしにそれを達成できますか?

2) 相対パスで Ftype を使用する方法。

4

1 に答える 1