2017-10-04 5 views
-1

以下のProgIdとApplicationNameはどこから来ますか?これらの特定のフィールドをクエリして、自分のファイル関連のXMLファイルを作成するにはどうすればよいですか?ファイルアソシエーションにProgIdとApplicationNameを移植する方法

あなたは "ChromeHtml" で何たとえば

Dism.exe /online /Export-DefaultAppAssociations:C:\Temp\DefaultApps.xml 


    <Association Identifier=".html" ProgId="ChromeHtml" ApplicationName="Google Chrome" /> 
    <Association Identifier=".ico" ProgId="PBrush" ApplicationName="Paint" /> 
    <Association Identifier=".md" ProgId="Applications\notepad.exe" ApplicationName="Notepad" /> 

を実行することによって、このファイルを入手できますか?このProgIdはどこで入手できますか?

「Applications \ notepad.exe」とは何ですか? < ----これは私がナビゲートできるパスではありません。 system32にnotepad.exeはありませんか?この文脈における

+0

これはどのファイルですか?何かの設定ファイル?あなたはあなたの質問にもっと文脈を提供する必要があります。 –

+0

@Bill_Stewartこれは、Dism.exeを実行して生成されたxmlの例です。私はこの形式で自分自身のXMLを作成したいと思います。 – nlstack01

+0

stackoverflowの質問ではありません。 –

答えて

0

ProgId

シェルは、アプリケーションとファイルの種類を関連付けるために、及び関連の動作を制御するプログラムID(プログラムID)レジストリサブキーを使用します。ファイルの関連付けに使用されるProgIDエントリは、レジストリのHKEY_CLASSES_ROOTにあります。

「ChromeHtml」は、Google Chrome開発者が作成したProgIDです。デフォルトのブラウザとしてChromeを選択すると、.htmlファイルの登録は、ChromeHtml ProgIDを指すように(Windowsバージョンに応じてChromeまたはWindowsによって)変更されます。 ProgIDには、ファイルをダブルクリックすると起動するアプリケーションに関する情報が含まれています。

"PBrush"はMicrosoftによって作成されたProgIDです。

"Applications \ notepad.exe"は、Microsoftによって特別に作成されたProgIDではありません。実際のProgIdを持たないアプリケーションでは、 "open with"機能を使用した結果です。これはファイルパスではなく、レジストリにHKEY_CLASSES_ROOT\Applicationsです。

Default Programsの機能に参加するアプリケーションは、HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplicationsの下に登録されているため、ProgIDと共にタイプされているCapabilitiesキーが表示されます。他のアプリケーションはApp Paths registrationしか持たず、一部のアプリケーションはHKEY_CLASSES_ROOTのファイル拡張子とProgIDを除いてどこにも登録されていません。

アプリケーションによっては、登録時に「ApplicationName」エントリを使用しますが、この値は私が知る限り文書化されておらず、代わりにAssocQueryString(ASSOCF_INIT_BYEXENAME, ASSOCSTR_FRIENDLYAPPNAME, ...)のように呼び出すことをお勧めします。

関連する問題