参考:将打包的桌面应用程序与文件资源管理器集成 https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/integrate-packaged-app-with-file-explorer
我现在知道如何在文件资源管理器中为我的 win32 打包桌面应用程序安装 shell 扩展自定义菜单项。但我想让用户选择他是否真的想要 shell 扩展。有没有办法在 Appx 清单中做到这一点?
参考:将打包的桌面应用程序与文件资源管理器集成 https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/integrate-packaged-app-with-file-explorer
我现在知道如何在文件资源管理器中为我的 win32 打包桌面应用程序安装 shell 扩展自定义菜单项。但我想让用户选择他是否真的想要 shell 扩展。有没有办法在 Appx 清单中做到这一点?
如果您实现具有IExplorerCommandState::GetState 方法的IExplorerCommandState 接口,则可以解决该问题
当您需要动态确定命令状态(例如,基于项目的属性)时,实现此接口。此接口提供与 IExplorerCommand::GetState 相同的功能,而没有该接口的附加方法的开销。只需要计算命令状态时实现 IExplorerCommandState
Microsoft 删除了自定义 MSIX 安装 GUI 的选项,这意味着您无法创建自定义选项,让用户选择是否需要 shell 扩展。
因此,据我所知,appxmanifest 模式不支持有条件地安装 shell 扩展。
Microsoft 建议在您的应用程序中移动所有选项配置,包括 EULA 和许可证注册程序。所以,理论上你可以尝试从你的应用程序中添加 shell 注册——我从来没有尝试过,但上面来自 Simon Mourier 的链接可能会有所帮助。