文件关联如何填充ProgId和ApplicationName

时间:2017-10-04 15:12:46

标签: c# windows powershell

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

您可以通过运行

来获取此文件
key: function (req, file, cb) {
      cb(null, username + ".jpg")
}

例如什么是“ChromeHtml”?我在哪里可以检索这个ProgId?

什么是“Applications \ notepad.exe”? < ----这不是我可以导航的路径。 system32中不是notepad.exe吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下

ProgId

  

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

“ChromeHtml”是由Google Chrome开发人员创建的ProgID。当您选择Chrome作为默认浏览器时,.html文件注册会更改(通过Chrome或Windows,具体取决于您的Windows版本),以便它指向ChromeHtml ProgID。 ProgID包含有关双击文件时要启动的应用程序的信息。

“PBrush”是由Microsoft创建的ProgID。

“Applications \ notepad.exe”不是Microsoft专门创建的ProgID,而是使用“open with”功能与没有真正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, ...)的内容。