【发布时间】:2020-07-18 10:45:58
【问题描述】:
我正在制作一个简单的 uwp 文本编辑器应用程序。我希望应用程序打开任何类型的文件,即使没有声明文件关联,因为有许多文本文件在操作系统中没有已知的扩展名。有什么方法可以修改注册表以使我的应用程序在记事本等打开方式列表中可用,以便用户可以从文件资源管理器本身使用我的应用程序打开该文件??
【问题讨论】:
标签: uwp desktop-bridge
我正在制作一个简单的 uwp 文本编辑器应用程序。我希望应用程序打开任何类型的文件,即使没有声明文件关联,因为有许多文本文件在操作系统中没有已知的扩展名。有什么方法可以修改注册表以使我的应用程序在记事本等打开方式列表中可用,以便用户可以从文件资源管理器本身使用我的应用程序打开该文件??
【问题讨论】:
标签: uwp desktop-bridge
在 Windows 10 2004(内部版本 19041)中,微软在包清单中引入了 uap10:FileType 属性,并通过提供 * 作为值,应用程序可在所有类型文件的菜单中打开。要使用它,只需将以下代码添加到您的清单中:
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
...
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="anyfile">
<uap:Logo>Assets\mylogo.png</uap:Logo>
<uap:SupportedFileTypes>
<uap:FileType>.txt</uap:FileType>
<uap10:FileType>*</uap10:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
这仅适用于 Windows 10 build 19041 及更高版本。如果应用的目标最低版本低于 19041 以通过清单验证,则额外的 uap:FileType 是必需的,否则可以省略。
【讨论】:
Reason: Element '{http://schemas.microsoft.com/appx/manifest/uap/windows10/10}FileType' is unexpected according to content model of parent element '{http://schemas.microsoft.com/appx/manifest/uap/windows10}SupportedFileTypes',即使我设置了<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.19041.0" />。似乎是什么问题?你能展示一个完整的例子吗?
uap10:FileType 实际上在 uap:SupportedFileTypes 内部。但是,我已经删除了uap2:SupportedVerbs,并且我已经完全按照您的 sn-p 进行了操作,但它仍然无法编译。请看:emeditor.blob.core.windows.net/beta/manifest2.zip
C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64。 Windows Kits 的任何旧版本路径都无法编译。在我正确设置 PATH 后,错误消失了。感谢您的提示。
很好的问题,但恐怕您无法修改注册表以使应用程序在打开方式列表中可用,即使没有在 UWP 应用程序中声明文件关联。文件关联是使应用程序可以handle the file activation 的唯一方法。 Windows 桌面应用程序和通用 Windows 平台 (UWP) 应用程序都可以注册为默认文件处理程序。如果您确实想要此功能,请随时使用 Windows 反馈中心应用程序发布您的要求。
【讨论】: