gpt4 book ai didi

c# - 文件关联如何填充 ProgId 和 ApplicationName

转载 作者:可可西里 更新时间:2023-11-01 11:45:30 32 4
gpt4 key购买 nike

下面的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”? <----这也不是我可以导航的路径。 notepad.exe不是system32的吗?

最佳答案

ProgId在这种情况下:

The Shell uses a programmatic identifier (ProgID) registry subkey to associate a file type with an application, and to control the behavior of the association. The ProgID entries used for file associations are located under HKEY_CLASSES_ROOT in the registry.

“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 下注册,这会引导您找到它们的 Capabilities 键,其中列出了它们的类型以及 ProgID。其他应用程序只有一个 App Paths registration有些应用程序除了直接在 HKEY_CLASSES_ROOT 中使用其文件扩展名和 ProgID 之外没有在任何地方注册。

某些应用程序在其注册中使用“ApplicationName”条目,但据我所知,此值未记录在案,您可能想调用类似 AssocQueryString(ASSOCF_INIT_BYEXENAME, ASSOCSTR_FRIENDLYAPPNAME, ...) 的名称相反。

关于c# - 文件关联如何填充 ProgId 和 ApplicationName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46568347/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com