有一个颇为恼人的问题:系统总是无法固定某个扩展名的打开方式,有时甚至不知道做了什么操作,就会弹出这样一个提示:
经过上网搜寻,这个问题应该是由KB3135173这个补丁导致的,主要原因是似乎是Windows 8起引入的appx应用在设置文件关联时,与以往的exe方式有冲突所致,详细的我也不是很清楚。要彻底解决这个问题,只能等程序开发厂商将程序设置关联的方法修改为Windows 10的风格,但是那些不再更新的怎么办?
解决方法有二:一种是用特殊手段卸载掉被“滚回”的系统APPX应用,但是鉴于卸载的是系统应用,估计会引起一些问题;另一种方法是为对应的应用添加NoOpenWith键值,以避免该应用重新获得文件关联,如此即可重新指定某扩展名的文件关联信息。
解决方法:下载这个文件,随后解压,运行其中的w10_stop_reset-fileasso.reg导入注册表(或将下面的内容复制保存为.reg文件并导入),即可解决一些自带应用抢夺文件关联的问题
Windows Registry Editor Version 5.00 ;Description: Prevents Windows 10 from resetting the file associations ;… by setting NoOpenWith registry value for all the modern apps. ;Created on Feb 13 2016 by Ramesh Srinivasan ;The Winhelponline Blog ;Tested in Windows 10 Build 10586 ;http://www.winhelponline.com/blog ;——————- ;Microsoft.3DBuilder ;——————- ;File Types: .stl, .3mf, .obj, .wrl, .ply, .fbx, .3ds, .dae, .dxf, .bmp ;… .jpg, .png, .tga [HKEY_CURRENT_USER\SOFTWARE\Classes\AppXvhc4p7vz4b485xfp46hhk3fq3grkdgjg] “NoOpenWith”=”” ;——————- ;Microsoft Edge ;——————- ;File Types: .htm, .html [HKEY_CURRENT_USER\SOFTWARE\Classes\AppX4hxtad77fbk3jkkeerkrm0ze94wjf3s9] “NoOpenWith”=”” ;File Types: .pdf [HKEY_CURRENT_USER\SOFTWARE\Classes\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723] “NoOpenWith”=”” ;File Types: .svg [HKEY_CURRENT_USER\SOFTWARE\Classes\AppXde74bfzw9j31bzhcvsrxsyjnhhbq66cs] “NoOpenWith”=”” ;File Types: .xml [HKEY_CURRENT_USER\SOFTWARE\Classes\AppXcc58vyzkbjbs4ky0mxrmxf8278rk9b3t] “NoOpenWith”=”” ;——————- ;Microsoft Photos ;——————- ;File Types: .3g2,.3gp, .3gp2, .3gpp, .asf, .avi, .m2t, .m2ts, .m4v, .mkv ;… .mov, .mp4, mp4v, .mts, .tif, .tiff, .wmv [HKEY_CURRENT_USER\SOFTWARE\Classes\AppXk0g4vb8gvt7b93tg50ybcy892pge6jmt] “NoOpenWith”=”” ;File Types: Most Image File Types [HKEY_CURRENT_USER\SOFTWARE\Classes\AppX43hnxtbyyps62jhe9sqpdzxn1790zetc] “NoOpenWith”=”” ;File Types: .raw, .rwl, .rw2 and others [HKEY_CURRENT_USER\SOFTWARE\Classes\AppX9rkaq77s0jzh1tyccadx9ghba15r6t3h] “NoOpenWith”=”” ;——————- ; Zune Music ;——————- ;File Types: .aac, .adt, .adts ,.amr, .flac, .m3u, .m4a, .m4r, .mp3, .mpa ;.. .wav, .wma, .wpl, .zpl [HKEY_CURRENT_USER\SOFTWARE\Classes\AppXqj98qxeaynz6dv4459ayz6bnqxbyaqcs] “NoOpenWith”=”” ;——————- ; Zune Video ;——————- ;File Types: .3g2,.3gp, .3gpp, .avi, .divx, .m2t, .m2ts, .m4v, .mkv, .mod ;… .mov, .mp4, mp4v, .mpe, .mpeg, .mpg, .mpv2, .mts, .tod, .ts ;… .tts, .wm, .wmv, .xvid [HKEY_CURRENT_USER\SOFTWARE\Classes\AppX6eg8h5sxqq90pv53845wmnbewywdqq5h] “NoOpenWith”=””
要撤销操作,运行压缩包中的undo.reg即可。
其次,来看一下问题的解决思路
要解决这个问题,首先要在注册表中以下位置找到抢夺文件关联的“应用”的ID。
HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages
例如:.pdf的应用被Microsoft Edge抢走了,那么展开以下分支:
Microsoft.MicrosoftEdge_25.10586.0.0_neutral__8wekyb3d8bbwe
继续向下展开,直到找到 Capabilities\FileAssociations 分支,在右侧找到对应的扩展名,并找到对应的Class ID:
本例中,.pdf的AppX Class ID为:AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723
接下来打开 HKEY_CURRENT_USER\SOFTWARE\Classes,转到上面找到的Class ID分支,然后在此分支建立字符串值NoOpenWith,键值为空。
退出注册表,如此该应用就不会出现在“打开方式”中了,也就可以避免被“滚回”到该应用了。
最后,简单解释一下NoOpenWith:该键值的用法是:字符串型,键值为空。当一个应用程序在 HKEY_CLASSES_ROOT\Applications 中注册了分支后,就会出现在“打开方式”的列表中,不论该程序是否自行注册过可以处理该文件类型。当该应用程序的分支下包含 NoOpenWith 时,将不再自动出现在“打开方式”的列表中。对于Windows 8 以后加入的AppX应用,原理是一样的,只是位置变化了一下。