Windows为对比工具WinMerge添加右键菜单

我记得正常安装后是会自动添加到右键菜单的,但是因为之前重装过电脑,导致之前的一些配置失效了,右键菜单也丢失了,这里重新设置一下。

步骤

打开软件WinMerge,右边工具(或者是上面栏的编辑–选项),外壳集成,注册shell扩展,然后勾选上面的添加到上下文菜单启用高级菜单
在这里插入图片描述

效果

选中一个文件,查看效果:多了两个选项:和另一个对比对比

选中二或三个文件,查看效果:多了一个选项:对比

(单次中,WinMerge不支持3个文件以上进行对比!)
在这里插入图片描述

扩展内容:修改了哪些文件?

其实按照Windows的逻辑,一般就是写注册表或者配置文件。

底层分析

WinMerge源码:https://github.com/WinMerge/winmerge

参考这篇文章:https://jpliu.github.io/winmergeportable.html

最近发现 WinMerge 的 GitHub Releases 上更新了 2.16.13 Beta 的版本,里面提到的其中一个功能点是 Possibility to store settings in INI file,大致意思是支持将 WinMerge 的配置保存至 ini 文件中。

  • 2.16.13 Beta 之前的 WinMerge 设置是保存在注册表中的,但是可以在程序设置中对设置的 reg 进行导出,更换设备之后需要重新导入 reg 文件之后才能正常显示功能。
  • 2.16.13 Beta 之后的版本只要在 WinMergeU.exe 的文件夹中新建一个名为 WinMerge.ini 的文件,WinMerge 就会自动将设置保存至该文件中,但是需要注意,新建文件后,之前的设置需要重新设置,因为读取到 WinMerge.ini的文件之后程序就不去读注册表了。

我去看了下这个版本的发版说明:https://github.com/WinMerge/winmerge/releases/tag/v2.16.13,确实是这么回事,这个版本之前是写注册表,后面是写配置文件。
(看了下我的版本是2.16.12,也就是写注册表)

Possibility to store settings in INI file (#248) (PR #750)

查看文件修改:https://github.com/WinMerge/winmerge/compare/master...grzesie:winmerge:grzesie-SettingsIniFile

在这里插入图片描述
Src/Merge.cpp 把写注册表的操作替换了。
在这里插入图片描述
Src/Common/RegOptionsMgr.cpp:https://github.com/WinMerge/winmerge/blob/46546b0aceb516696662be481218c207e0725527/Src/Common/RegOptionsMgr.cpp

注册表分析

(看了下我的版本是2.16.12,也就是写注册表)

找了下,大概应该是有这些注册表:

# 这个是配置项
计算机\HKEY_CURRENT_USER\SOFTWARE\Thingamahoochie\WinMerge
# 下面几个好像都是邮件相关的
计算机\HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\WinMerge
计算机\HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\WinMerge
计算机\HKEY_CLASSES_ROOT\Directory\shellex\DragDropHandlers\WinMerge
计算机\HKEY_CLASSES_ROOT\Directory\Background\shellex\DragDropHandlers\WinMerge

然后我尝试开关这两个按钮(添加到上下文菜单启用高级菜单),发现主要是配置项(计算机\HKEY_CURRENT_USER\SOFTWARE\Thingamahoochie\WinMerge)改了两个东西:

(左边关闭,右边开启)

计算机\HKEY_CURRENT_USER\SOFTWARE\Thingamahoochie\WinMerge

ContextMenuEnabled从0变成3
在这里插入图片描述

计算机\HKEY_CURRENT_USER\SOFTWARE\Thingamahoochie\WinMerge\ResizeableDialogs

OptionsDlg 从693,288,1383,894,变成490,268,1180,874。

在这里插入图片描述

关键是ContextMenuEnabled,如果这两个按钮(添加到上下文菜单启用高级菜单)都不勾选是0,勾选添加到上下文菜单是1,都勾选是3。

(其实有点没懂的是:为啥通过这个配置项就能控制右键菜单,因为一般右键菜单都是要那几个shell下面相关的注册表才能控制的,但是都比了那几个注册表,没有发现变化,存疑!!!后面有空深入研究一下,先到这里。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值