这篇文章的本意呢,其实对个人用户意义不大,因为桌面端微信本身提供了自定义用户数据文件存放路径的设置项,那么为什么要写出来这么一篇看似无用的教程来呢?是因为微信本身的特殊性,需要用户登录以后才可以修改设置,那么对于运维人员来说,想要预装微信再自定义用户数据存放路径就比较麻烦了,登录自己的账号修改设置后,又会留下使用过的痕迹(其实也是有办法清除的)下次打开微信就会赤裸裸地默认提供自己账号的登录二维码以及头像。但是电脑的所有者又不会在自己不在场的情况下让你登录她的微信看到个人隐私,这就比较尴尬了……
现在开始需求分析:
一、微信默认文件保存位置是在用户文档目录中,具体位置可通过下方的路径获取,如果你没有修改过用户根目录位置,那么这个目录默认在你的系统分区中,以目前固态硬盘的普及程度以及容量限制,整块硬盘的剩余空间很快就会被微信中大量的小视频、图片以及文件等的缓存吃空,所以,把微信默认文件保存位置修改到非系统分区中是很有必要的。
%USERPROFILE%\Documents
二、微信的设置需要登录以后才可以修改,且未提供清除登录历史记录的功能,下次启动默认显示最后一次登录用户的头像及登录用二维码图像,对于普通用户而言,造成困扰。
综上所述,需求是存在的,所以就决定搞定它。既然支持自定义,就说明路径不是写死在代码里的,就是不知道为什么桌面端的微信不在安装时像QQ一样提供可自定义用户数据存放位置的选项了,你不给那我就自己来。其实我当时面对的需求要更加复杂一点,就是不仅要在不登录微信的情况完成存放位置修改,还要把以前的聊天记录还原回去,好在最后还是实现了。那么,废话不多说了,下面开始正文:
第一步,从官网下载桌面版微信客户端并安装,安装结束后不要点开始使用,直接关闭掉。
通过对安装日志的分析,发现了比较可疑的操作,于是跳转到上图所示的目录打开目标文件分析
%USERPROFILE%\AppData\Roaming\Tencent\WeChat\All Users\config\3ebffe94.ini
文件内容高度可疑,内容很明显就是微信文件的默认保存位置,也就是“我的文档”系统目录中
注册表项目也创建了一个比较可疑的注册项“FileSavePath”,键值同样为“MyDocument:”
为了弄明白这些设置究竟是起什么作用,对微信主程序的启动过程进行了后台追踪并分析日志,可以看到微信主程序先后访问了如下文件,暂且记录一下并大概查看了下文件内容
%USERPROFILE%\AppData\Roaming\Tencent\WeChat\All Users\config\3ebffe94.ini
%USERPROFILE%\Documents\WeChat Files\All Users\config\config.data
%USERPROFILE%\AppData\Roaming\Tencent\WeChat\1\config.ini
%USERPROFILE%\AppData\Roaming\Tencent\WeChat\1\kvcomm\config.ini
%USERPROFILE%\Documents\WeChat Files\All Users\config\c9d52eb5.ini
其它文件都是纯文本,内容没什么特别,但是这个文件中记录的是我登录微信后的实际用户文件夹位置,对比下微信刚安装完成时这个文件是空的,可以证明微信启动后显示的默认账户就是你最后一次登录的微信账号信息。
这两个配置文件是在执行账号登录过程中访问到的、但实际根本不存在的配置文件。为了节省篇幅,接下来的实验过程我就不一一截图了,只作文字说明,必要的时候会截图证实。
HKEY_CURRENT_USER\Software\Tencent\WeChat
@FileSavePath = "C:\ProgramData\Tencent\WeChat"
尝试着使用微信设置修改了默认文件保存位置,后台记录到微信在新位置复制了一份原目录中的文件,随后修改了注册表中默认存储位置的键值,同时创建了一个新的配置文件“b928cd74.ini”,记录了修改前的默认文件保存位置。
%USERPROFILE%\AppData\Roaming\Tencent\WeChat\All Users\config\b928cd74.ini
微信重启登录后,会删除原目录,同时修改“config.data”中的默认文件存储位置,至此全部过程结束。现在我们已经了解了相关的配置文件以及注册表项,过程也清楚了,那么需求就方便解决了。
1、自定义微信默认文件保存位置
微信安装结束后不要立即运行,修改配置文件"3ebffe94.ini"以及注册表项“FileSavePath”的取值
#配置文件
%USERPROFILE%\AppData\Roaming\Tencent\WeChat\All Users\config\3ebffe94.ini
#注册表项
HKEY_CURRENT_USER\Software\Tencent\WeChat
@FileSavePath = "MyDocument:"
2、清除微信登录历史
删除微信默认文件保存位置“WeChat Files”下除“All Users”外的所有账号文件夹、删除“All Users”目录中所有的JPEG图像文件(登录过的微信账号头像缓存)、删除"All Users"的子目录“Config”中除“c9d52eb5.ini”之外的所有文件,然后使用如下命令重建“config.data”配置文件。
cd\
#注意替换成自己的微信文件默认保存位置
cd "C:\ProgramData\Tencent\WeChat\WeChat Files\All Users\config"
#输入下面命令回车后按Ctrl+Z再按回车保存即可
copy con config.data
3、还原微信账号数据(含聊天记录等)
重装系统后,只需把之前备份好的“WeChat Files”文件夹复制到微信文件默认保存位置即可,主要不要覆盖“Config”子目录中原有的配置文件“c9d52eb5.ini”,重启后微信会读取并自动修改“Config.data”中的目录位置。
好了,写得差不多了,其实这篇文章内容对于普通用户没有什么用处,主要是给运维人员用,比如帮同事或朋友乃至领导修电脑重做系统后,预装软件,需要在不登录领导微信账号的情况下修改默认文件保存位置并导回原微信的聊天记录,那么这篇文章的内容就可以派上用场了。