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下面相关的注册表才能控制的,但是都比了那几个注册表,没有发现变化,存疑!!!后面有空深入研究一下,先到这里。)

WINMERGE WinMerge 是一款用以对文件进行对比以及合并,可以运行在所有流行的 Windows平台上的开源软件。有些功能需要额外安装组件。 最新的 WinMerge 版本以及其它相关信息可以从 http://winmerge.org 得到。 WinMerge 快速入门: 请阅读在线手册的“Quick-start”章节来了解并开始即用 WinMerge : http://winmerge.org/docs/manual/QuickStart.html HTML 手册: 用户手册可以从 http://winmerge.org/docs/manual/ 得到,也可以在安装时选择 安装到本地,或者也可以单独从 http://winmerge.org/ 下载。(参见文档) 压缩包支持: WinMerge 使用 7-Zip 支持压缩包。7-Zip (http://www.7-zip.org) 是一个开源的打 包软件。要安装压缩包支持,请从 http://winmerge.org/ 下载 7-Zip 插件安装 程序。 安装压缩包支持: 推荐安装 7-Zip 应用程序。如果不能安装的话,7-Zip 插件安装程序只会安装那些支 持压缩包所必需的文件。请注意这种情况下将*不能*单独使用 7-Zip,只能在 WinMerge 中支持压缩包。 脚本支持: 如果您想使用脚本,您需要安装 Windows Script Host。如果您遇到任何关于脚本的 问题,请访问 http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp 以确定您的 Windows Script Host 已经启动并且运行正常。 支持: 开发人员会在 Sourceforge.net 的 WinMerge 版面回答问题,地址如下: http://sourceforge.net/forum/?group_id=13216 Bug 和功能需求: Bug 和对新功能的建议应当提交到 sourceforge.net 的 bug 和 RFE trackers 上。 Bug tracker: http://sourceforge.net/tracker/?group_id=13216&atid=113216 当您提交 bug 时,请告诉我们 WinMerge 的版本号! WinMerge 2.2.0 及以上版本可以选择菜单“帮助/配置”来输出配置信息。请把这个 文件以附件的方式加到 bug 报告中,它包括许多对于开发人员非常有用的信息。 RFE (功能) tracker: http://sourceforge.net/tracker/?group_id=13216&atid=363216 - WinMerge 开发人员
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值