本文是2020年第16篇原创文章,也是汪子熙公众号总共第199篇原创文章。
今天是猪年最后一天,大年三十。往年的这个时候,我都有点紧张,因为有亲戚会来串门,而亲戚的熊孩子们,出于好奇总是会觊觎我书房里摆的到处都是的异形,终结者等手办。
![9bcfcb8fadfb2bd69820ceb549b887f1.png](https://img-blog.csdnimg.cn/img_convert/9bcfcb8fadfb2bd69820ceb549b887f1.png)
![619e2b09ca503e350f3b32a2de93f218.png](https://img-blog.csdnimg.cn/img_convert/619e2b09ca503e350f3b32a2de93f218.png)
![f284a878c8cc3b0dcb3719bf1206c90e.png](https://img-blog.csdnimg.cn/img_convert/f284a878c8cc3b0dcb3719bf1206c90e.png)
今年由于众所周知的原因,没人来串门了,还有点不习惯。
![4f25a646df9337a4eda3857cee55039f.png](https://img-blog.csdnimg.cn/img_convert/4f25a646df9337a4eda3857cee55039f.png)
本文我们来聊聊一个古老的话题:Windows注册表。
用过“瘟酒吧”的七零后八零后,对于Windows注册表一定不陌生。在那个距今已经显得有些遥远的时代,甚至还有很多专门出版的书籍,教授如何修改Windows注册表来提高系统性能,或是启用一些微软默认disable了的隐藏功能。
![27814c1c43903cf9e17d7a29178464f4.png](https://img-blog.csdnimg.cn/img_convert/27814c1c43903cf9e17d7a29178464f4.png)
![9676bbb279445c0a904285dbcee7325d.png](https://img-blog.csdnimg.cn/img_convert/9676bbb279445c0a904285dbcee7325d.png)
我们知道Windows注册表用于存储系统和应用程序的设置信息,从Windows 95启用一直沿用到今天的Windows10.
![a0bbe62223a04d76e095b361d6d12785.png](https://img-blog.csdnimg.cn/img_convert/a0bbe62223a04d76e095b361d6d12785.png)
那么SAP GUI命令行里用过的事务码列表,会不会也保存在Windows系统注册表的某个地方呢?
![dab6ca07321fbd5a968ad8dcf36976a6.png](https://img-blog.csdnimg.cn/img_convert/dab6ca07321fbd5a968ad8dcf36976a6.png)
Windows操作系统里,Win + R,执行regedit打开注册表,沿路径HKEY_USERSSoftwareSAPSAPGUI FrontSAP Fronted ServerCode展开,即可看到这些用过的事务码列表。
![79c5493d374006a382ff4fd34f8fd452.png](https://img-blog.csdnimg.cn/img_convert/79c5493d374006a382ff4fd34f8fd452.png)
同样,在本地SAP GUI目录下,有SAPHistory.db和SAPHistory.mdb这两个文件:
![0b52c6b8c740ede15cf6651a8a624cca.png](https://img-blog.csdnimg.cn/img_convert/0b52c6b8c740ede15cf6651a8a624cca.png)
按照SAP note 1121688 - SAP History: explaining database files, etc的说法,扩展名.mdb文件是旧版本的SAP GUI使用,而.db对应新版本。
![1c4d0dc55be3965e412f2e89c2291a8f.png](https://img-blog.csdnimg.cn/img_convert/1c4d0dc55be3965e412f2e89c2291a8f.png)
授人以鱼不如授人以渔,如何自行找到SAP GUI存储这些本地信息的注册表位置?
Jerry的文章 SAP错误消息调试之七种武器:让所有的错误消息都能被定位 里介绍的第六种方法,离别钩之ST05,对其稍作调整,就能达到我们的研究SAP GUI和Windows注册表关系的目的。
比如,假设想知道下列这些History Settings的值是否维护在Windows注册表里,
![202b62b73623bb45040c5487d17f5046.png](https://img-blog.csdnimg.cn/img_convert/202b62b73623bb45040c5487d17f5046.png)
首先,在修改设置之前,导出一个注册表镜像文件before.reg:
![224a773dd7539aed74a15d3884f7018a.png](https://img-blog.csdnimg.cn/img_convert/224a773dd7539aed74a15d3884f7018a.png)
在SAP GUI里对设置做修改,保存后,导出第二个注册表镜像文件after.reg, 然后用Windows自带的文件比较工具fc比较两个镜像文件的差别,结果即为SAP GUI这些设置在Windows注册表里的位置。
![7dfa217ebcb9fcc26befe5487931eba4.png](https://img-blog.csdnimg.cn/img_convert/7dfa217ebcb9fcc26befe5487931eba4.png)
结果如下:
![84347bcdf1e54e64432da29bf53eb485.png](https://img-blog.csdnimg.cn/img_convert/84347bcdf1e54e64432da29bf53eb485.png)
![5549feb01b5a35420b76db4cfd2a56d8.png](https://img-blog.csdnimg.cn/img_convert/5549feb01b5a35420b76db4cfd2a56d8.png)
绝大多数注册表项都位于SAPGUI Front这个节点下面,而从该节点向上追溯,也能发现其他SAP软件在注册表里写入的值,比如SAP Cloud Connector,SA Cloud Application Studio,SAP Intelligent Robotic Process Automation套件等等。
![1cef2780010fa8ba623e790d7364614e.png](https://img-blog.csdnimg.cn/img_convert/1cef2780010fa8ba623e790d7364614e.png)
SAP GUI设置里的checkbox如果勾上,对应Windows注册表里的值维护为00000001:
![324575c091aed6f13c835ba10826a1cc.png](https://img-blog.csdnimg.cn/img_convert/324575c091aed6f13c835ba10826a1cc.png)
而在SAP GUI里按照十进制存储的值,存储在Windows注册表里会自动转换成十六进制:
![e7053f7f725d5ba4ca9c73e24cf1016f.png](https://img-blog.csdnimg.cn/img_convert/e7053f7f725d5ba4ca9c73e24cf1016f.png)
这是今天的成都武侯祠大街。
![bd23cfa0577e793b3db0866924b447a3.png](https://img-blog.csdnimg.cn/img_convert/bd23cfa0577e793b3db0866924b447a3.png)
西南民院一角:
![22f80b0fbd60b42c1608956d387399db.png](https://img-blog.csdnimg.cn/img_convert/22f80b0fbd60b42c1608956d387399db.png)
![f105ef4a23b587049635ba3a90bdf38a.png](https://img-blog.csdnimg.cn/img_convert/f105ef4a23b587049635ba3a90bdf38a.png)
![8f4fbfd892339c617caf40c1a9c1ed72.png](https://img-blog.csdnimg.cn/img_convert/8f4fbfd892339c617caf40c1a9c1ed72.png)
既然专家们都建议大家没事不要外出,但老待在家里宅着也要长胖,大家过年期间别忘了锻炼身体哦,感谢阅读,我们鼠年再见。
![be3d7b8b7385d3a784c667fbafbc4025.png](https://img-blog.csdnimg.cn/img_convert/be3d7b8b7385d3a784c667fbafbc4025.png)
![9f725c004e3d8da0bdb0142c87f596be.png](https://img-blog.csdnimg.cn/img_convert/9f725c004e3d8da0bdb0142c87f596be.png)
![13c3c31f5221f6e4f1b5ca70b5e41d98.png](https://img-blog.csdnimg.cn/img_convert/13c3c31f5221f6e4f1b5ca70b5e41d98.png)
更多阅读
- Jerry的ABAP, Java和JavaScript乱炖
- ABAP开发人员未来应该学些什么
- Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现
- Jerry的ABAP原创技术文章合集
- 300行ABAP代码实现一个最简单的区块链原型
- 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
- 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务
- ABAP vs Java, 蛙泳 vs 自由泳
- 聊聊C语言和ABAP
- 动手使用ABAP Channel开发一些小工具,提升日常工作效率
- 我用ABAP做过的那些无聊的事情
- 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
- 使用Visual Studio Code编写和激活ABAP代码
- 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧
- 在SAP云平台ABAP编程环境上编写第一段ABAP程序
- SAP官方发布的ABAP编程规范
- ABAP Code Inspector那些隐藏的功能,您都知道吗?
- 还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧
- ABAP Netweaver体内的那些寄生式编程语言
- 从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀
- 云端的ABAP Restful服务开发
- 如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务
- 使用abapGit在ABAP On-Premises系统和SAP云平台ABAP环境之间进行代码传输
- 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用
- Jerry带您了解Restful ABAP Programming模型系列之二:Action和Validation的实现
- Jerry带您了解Restful ABAP Programming模型系列之三:云端ABAP应用调试
- SAP云平台上的ABAP编程环境里如何消费第三方服务
- ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了
- 学而不思则罔 - SAP云平台ABAP编程环境的由来和适用场景
- SAP云平台里的三叉戟应用
- 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用
- SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?
- 有哪些ABAP关键字和语法,到了ABAP云环境上就没办法用了?
- ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了
- 利用ABAP 740的新关键字REDUCE完成一个实际工作任务
- 一段让人瑟瑟发抖的ABAP代码
- 昨日万圣节ABAP怪兽级代码谜团,公布答案啦
- 介绍一种在ABAP内核态进行内表高效拷贝的方法
- 使用SAP Cloud Application Programming模型开发OData的一个实际例子
- 当ABAP遇见普罗米修斯
- 使用ABAP绘制可伸缩矢量图
- ABAP开发环境语法高亮的那些事儿
- SAP错误消息调试之七种武器:让所有的错误消息都能被定位
- 使用ABAP操作Excel的几种方法
- SAP GUI里的收藏夹事务码管理工具