如何让我的应用程序成为 windows 10 个默认照片应用程序
How can I make my app a windows 10 default app for photos
我已经创建了一个应用程序作为 exe。在 windows 10 上,如果您打开设置应用 -> 应用 -> 默认应用,您可以 select 应用作为照片、视频 e.t.c 的默认应用。我想为我的 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
我已经创建了一个应用程序作为 exe。在 windows 10 上,如果您打开设置应用 -> 应用 -> 默认应用,您可以 select 应用作为照片、视频 e.t.c 的默认应用。我想为我的 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