プログラムでユーザーに「このプログラムで常にデフォルトで開く.mp3ファイルタイプを設定しますか?」と尋ねたいのですが。(初めてのみ)これを行うための例はありますか?
3 に答える
まず、Windows レジストリについて理解する必要があります。
プログラムと拡張機能の関連付けは、HKEY_CLASSES_ROOT キー内で処理されます。各拡張子はサブキーとして表示されます。
各キーのデフォルト値として、その特定のファイル タイプに対して現在サポートされているほとんどの操作を処理する関連付けられたキーが見つかります。
たとえば、.mp3 のデフォルト値が「WMP11.AssocFile.MP3」に設定されているか、VLC をインストールしてデフォルトの MP3 プレーヤーとして構成している場合は「VLC.mp3」に設定されていることがあります。そのため、HKEY_CLASSES_ROOT 内でそのキーを見つける必要があります。
これは異なる場合がありますが、「VLC.mp3」(または .mp3 拡張子に関連付けられたキー) には「shell」というサブキーがあることがわかります。「shell」の下に、「Open」という別のサブキーがあります。最後に、「開く」の下に「コマンド」という別のサブキーがあります。
「コマンド」キーは、Windows (およびその他のプログラム) が現在「.mp3」(またはその他の) 拡張子に関連付けられているアプリケーションを開く/起動するために使用する情報を含むキーです。
レジストリで関連付けが処理される方法を理解し、慣れたら、.NET のMicrosoft.Win32
Registry クラスを使用して、必要なキーとその値をナビゲートおよびクエリする必要があります。
コードがどのように見えるかの非常に基本的な図を次に示します。
Dim mp3 = Registry.ClassesRoot.OpenSubKey(".mp3")
Dim associatedValue = mp3.GetValue("")
Dim associatedKey = Registry.ClassesRoot.OpenSubKey(associatedValue)
Dim defaultProgram = associatedKey.OpenSubKey("Shell\Open\Command").GetValue("")
MsgBox("MP3 Files Are Opened Using: " + vbCrLf + defaultProgram)
お役に立てれば...
ファイルの関連付けを設定する必要があります。VB.NET でのファイルの関連付けの設定については、Code Project に関するこの記事を参照してください。