【发布时间】:2020-10-07 15:30:50
【问题描述】:
我创建了一个应用程序作为 exe。在 Windows 10 上,如果您打开设置应用程序 -> 应用程序 -> 默认应用程序,您可以选择应用程序作为照片、视频等的默认应用程序。我想为我的 exe 启用此功能。这可以通过 Windows 注册表完成吗? 此外,我的应用程序可以打开非常规的图像文件,如 webp 和 apng。我如何也从注册表中启用它。 我正在使用 NSIS 作为安装程序。 非常感谢
【问题讨论】:
我创建了一个应用程序作为 exe。在 Windows 10 上,如果您打开设置应用程序 -> 应用程序 -> 默认应用程序,您可以选择应用程序作为照片、视频等的默认应用程序。我想为我的 exe 启用此功能。这可以通过 Windows 注册表完成吗? 此外,我的应用程序可以打开非常规的图像文件,如 webp 和 apng。我如何也从注册表中启用它。 我正在使用 NSIS 作为安装程序。 非常感谢
【问题讨论】:
关注Registering an Application for Use with Default Programs的文档:
!define MyAppUniqueName "MyCompany.MyApp"
!define MyCapabilitiesKey "Software\MyCompany\MyApp\Capabilities"
!define MyProgId "MyCompany.MyApp.File"
Section
WriteRegStr ShCtx "Software\Classes\${MyProgId}\shell\open\command" "" '"$InstDir\myapp.exe" "%1"'
WriteRegStr ShCtx "${MyCapabilitiesKey}" "ApplicationName" "Blah"
WriteRegStr ShCtx "${MyCapabilitiesKey}" "ApplicationDescription" "Blah blah blah"
WriteRegStr ShCtx "${MyCapabilitiesKey}\FileAssociations" ".webp" "${MyProgId}
WriteRegStr ShCtx "${MyCapabilitiesKey}\FileAssociations" ".apng" "${MyProgId}"
WriteRegStr ShCtx "Software\RegisteredApplications" "${MyAppUniqueName}" "${MyCapabilitiesKey}"
SectionEnd
Section Uninstall
DeleteRegKey ShCtx "Software\Classes\${MyProgId}"
DeleteRegValue ShCtx "Software\RegisteredApplications" "${MyAppUniqueName}"
DeleteRegKey ShCtx "${MyCapabilitiesKey}"
SectionEnd
【讨论】: