Microsoft Store版QQ桌面版经常崩溃和无法查看视频的解决办法

Store版的QQ可以算是目前腾讯官方做的功能最全面的干净版QQ了,没有qqprotect进程,不会加驱,是个很合适的版本。然而这个版本有三个比较讨厌的地方。

一是经常发生的RICHED20.dll造成的QQ崩溃

二是因为包里没有videoshowplayer组件造成无法直接查看别人发送的视频,必须手动找到视频所在位置用系统播放器播放

三是无法移动数据文件位置

先来说下各个问题的原因。一是由于包里自带的RICHED20.dll版本比较奇怪,可能与win10的某些模块不兼容造成的,所以解决方法就是让qq用系统自带的riched20.dll组件;二的话只要像win32版那样把videoshowplayer组件释放到qq程序目录就好;三的话其实只需要修改公用文档下的userdatainfo.ini即可。

然而虽然说起来简单,但对于Store转制版一个十分严重的问题就是,因为Store版应用为了追求干净,所以对程序目录权限极其严格,我自己即使用dism++的无视权限操作也只能从目录里删除文件而无法修改或添加文件。而上述的问题2是需要添加文件的,所以我们要解决所有的三个问题必须要修改qq的软件包。

下面说下修改包的步骤。首先你需要一个store版qq桌面版的离线安装包,可以在获取了store链接后去https://store-rg.adguard.net下载。然后你需要在Microsoft Store里安装一个msix打包工具。接下来你需要准备一份videoshowhelper释放的文件,可以去这个百度网盘链接下载(提取码:d55u)。然后你需要准备一个自签名证书用于接下来给打包的安装包签名。准备证书的操作可以参考微软文档。这个证书生成好后要导出备用。

接下来,打开我们的msix打包工具,选择第三项“编辑已有安装包”,找到我们下载的qq离线安装包并打开,然后在首页的“签名”部分选择刚才导出的证书。务必选择签名,否则等会打包好的应用会因为没有签名无法安装。然后切换到最后一页的“应用包文件”,删除qq\bin目录下的RICHED20.dll。然后在同一目录下加入刚才拿到的videoshowplayer释放的6个dll。第三个问题是无法单纯靠修包解决的,等会再说明。

如果你想进一步精简这个应用包里的无用文件,以下文件是我在20h1上测试过可以删除的:qq\bin目录下从maJmp.dll到minibrowser_shell.dll的11个文件,QQPcmgrDownload.exe,QQUrlmgr.exe,Tencentdl.exe。VFS目录下只需留下ProgramFilesCommonx86目录、ProgramFilesX86目录,SystemX86下的TXGY开头的两个文件,users\containeradministrator\appdata\roaming\tencent\qq目录下除STemp目录外的全部文件,VFS\Windows\WinSxS目录即可。未提及的其他文件可能有可以删除的,但请谨慎尝试以免生成的包爆炸。

所有修改完成后点击保存,系统会自动生成一个msix包。安装这个msix包即可使用。

最后说一下前面提到的问题三。实际上为什么说它靠修包没法解决,是因为微软的文档里似乎没有提到应用包里可以包含一个public user文件夹,而qq的数据文件位置的控制文件是写在public user目录下的,所以导致qq会去读取这个无法修改的文件。所以你在程序里不管怎么调位置都是没用的。这里我们需要用一点骚操作。因为转制版应用包内的路径映射了系统对应位置的文件,所以我们在这个包里的userdatainfo.ini对应的文件位置放一个我们的userdatainfo.ini就能利用这个映射反向强制qq读取我们的文件从而实现移动数据文件位置的操作。

以上就是对应用商店版qq桌面版进行修改的全部经验,希望能帮助到大家,谢谢!


更新:Store版qq已经无了,以后请大家按手制qq精简版的方式来精简~

评论

此博客中的热门博文

白嫖azure服务器搭建全套rss阅读环境

有道词典8.0去广告方法

Zotero Word插件汉化和移动到“引用”选项卡