4

MFC のプログラムから生成された実行可能ファイルがあり、ファイルを開くための既定のプログラムとして使用したいと考えてい.jpgます。つまり、.jpgファイルをダブルクリックするたびに、プログラムが実行されます。

(値を に設定.jpg)や.HKEY_CLASSES_ROOT\.jpg\shell\open\command"myProgram.exe" "%1"HKEY_CLASSES_ROOT\myProgram

この方法は、他のアプリケーションがファイルを開くために自分自身を登録する場合を除いて、問題なく機能し.jpgます。たとえば、コンピューターに acdSee をインストールしたので、.jpgファイルをダブルクリックするたびに、自分のプログラムではなく常に acdSee が起動します。しかし、まったく新しいタイプのファイルをプログラムに登録すると、プログラムで開くことができます。自分のプログラムを、既に登録されているファイルのデフォルトのオープニング プログラムとしてプログラムで設定する方法がわかりません。誰でもこの問題を解決するのを手伝ってもらえますか? どうもありがとうございました!

4

2 に答える 2

2

これを行うためのより一般的/標準的な方法は、「。jpg」キーのデフォルト値をファイルタイプをより明確に識別する名前に設定し、そこでさまざまな関連アクションを設定することです。したがって、jpgの場合は、次のようにします。

HKCR\.jpg
   @default = MyApp.JpegImage
HKCR\MyApp.JpegImage\shell\open\command
   @default = "myApp.exe "%1""

他のプログラムがタイプを登録することを決定した場合、HKCR.jpgのデフォルト値をOtherProgram.Jpgなどの他の値に置き換えます。その時点で、値をMyApp.JpegImageに戻すことで、アプリに再登録できます。

免責事項:この種の変更を行うときは、ユーザーの好みも尊重するようにしてください。たとえば、アプリケーションをインストールするときに、このファイルの関連付けを設定するかどうかをユーザーに選択できるようにします。ユーザーが必要に応じて、インストールされているアプリケーション内からコマンドを提供して、関連付けをリセットすることもできます。

代わりに、既存の登録済みタイプにいくつかのコマンドを追加する場合は、.jpgキーのデフォルト値を読み取って、ファイルタイプの名前を見つけます。次に、そのキーを開いて、既存のアクションのセットにアクションを追加できます。たとえば、次を追加できます。

HKCR\ExistingApp.JpegImage\shell\myopen\
    @default = "Open with MyApp"
HKCR\ExistingApp.JpegImage\shell\myopen\command\
    @default = "myApp.exe "%1""
于 2008-11-25T03:25:30.857 に答える
0

HKCR にキーを書き込むことで、実際には HKLM\Software\Classes に書き込むことに注意してください。これには管理者権限が必要です。ただし、代わりに HKCU\Classes\Root にキーを書き込むことにより、ユーザー コンテキスト内でユーザーごとの変更を行うことができます。

また、HKCU のユーザー設定は、HKLM のシステム デフォルトを上書きします。これは、問題のように聞こえます。

これは、プログラムが拡張機能を「デフォルト」として登録していない場合です (プログラムはコントロール パネルの [プログラムとデフォルトの設定] に表示されていますか?)

ドキュメントを読み始める時が来ました!

于 2008-11-25T04:46:59.227 に答える