下面的ProgId和ApplicationName来自哪里?如何查询这些特定字段以创建自己的文件关联xml文件?
您可以通过运行获取此文件
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" />
例如什么是“ChromeHtml”?我在哪里可以取回此ProgId?
什么是“Applications\notepad.exe”?
最佳答案
ProgId在这种情况下:
“ChromeHtml”是由Google Chrome开发人员创建的ProgID。当您选择Chrome作为默认浏览器时,.html文件注册会更改(由Chrome或Windows决定,具体取决于您的Windows版本),以便它指向ChromeHtml ProgID。 ProgID包含有关在双击文件时启动哪个应用程序的信息。
“PBrush”是Microsoft创建的ProgID。
但是,“Applications\notepad.exe”不是Microsoft专门创建的ProgID,它是对没有真正ProgId的应用程序使用“打开方式”功能的结果。它不是文件路径,而是注册表中的HKEY_CLASSES_ROOT\Applications
。
参与Default Programs功能的应用程序已在HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications
下注册,并引导您进入其功能键,其中将其类型与ProgID一起列出。其他应用程序仅带有App Paths registration,并且某些应用程序未在任何地方注册,除非直接在HKEY_CLASSES_ROOT中使用其文件扩展名和ProgID。
某些应用程序在其注册中使用“ApplicationName”条目,但是据我所知,该值没有记录在案,您可能想调用类似 AssocQueryString(ASSOCF_INIT_BYEXENAME, ASSOCSTR_FRIENDLYAPPNAME, ...)
的名称。