首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件关联如何填充ProgId和ApplicationName

文件关联如何填充ProgId和ApplicationName
EN

Stack Overflow用户
提问于 2017-10-04 15:12:45
回答 1查看 9.1K关注 0票数 5

下面的ProgId和ApplicationName是从哪里来的?如何查询这些特定字段以生成自己的文件关联xml文件?

您可以通过运行

代码语言:javascript
复制
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"?<--这不是我也可以导航的路径。notepad.exe不是在system32吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-04 19:02:43

在这种情况下,ProgId

Shell使用编程标识符(ProgID)注册表子项将文件类型与应用程序关联,并控制关联的行为。用于文件关联的ProgID条目位于注册表中的HKEY_CLASSES_ROOT下面。

"ChromeHtml“是由Google开发人员创建的ProgID。当您选择Chrome作为默认浏览器时,.html文件注册将被更改(由Chrome或Windows根据您的Windows版本而定),以便它指向ChromeHtml ProgID。ProgID包含有关在双击文件时启动哪个应用程序的信息.

"PBrush“是微软创建的ProgID。

然而,"Applications\notepad.exe“并不是微软专门创建的ProgId,而是在一个没有真正ProgID的应用程序中使用"open”功能的结果。它不是文件路径,而是注册表中的HKEY_CLASSES_ROOT\Applications

参与默认程序特性的应用程序是在HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications下注册的,这将引导您找到它们的功能键,其中列出了它们的类型以及ProgID。其他应用程序只有一个App路径注册,除了直接在HKEY_CLASSES_ROOT中注册文件扩展名和ProgID之外,有些应用程序没有在任何地方注册。

有些应用程序在注册时使用"ApplicationName“条目,但据我所知,这个值并没有文档化,您可能希望调用类似于AssocQueryString(ASSOCF_INIT_BYEXENAME, ASSOCSTR_FRIENDLYAPPNAME, ...)的内容。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46568347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档