您的位置:首页 > 编程语言 > VB

vbsedit 安装高版本后不能使用的解决方法

2018-01-19 13:53 483 查看
每次解决vbsedit 不能使用都是看这篇帖子,向贴主及评论家们致敬。
原文及回帖复制如下:http://tieba.baidu.com/p/3542613784

==========================================
问题描述 

==========================================
很多人第一次用VBSedit 5.2.4汉化绿色版时都会出现“Failed to load pdm.dll. Ensure that pdm.dll is installed on this computer.”错误。
▼错误提示框



而网上很多解决办法并不适合开启了UAC的Win7 (Win7开启UAC时cmd以管理员权限运行默认路径会跳转到system32),而装一个安装版的VBSedit就能解决这个问题了。
不过后来VBSedit更新后出现了问题,安装了新版VBSedit后运行5.2.4会完全无法应,进程瞬间结束,即便是卸载新版本也是会这样,并且5.2.4的正版软件也一样无法运行。于是我下定决心开始寻找解决办法。

==========================================
解决思路 
==========================================
删除所有相关文件,不管用,删除含vbsedit或Adersoft的注册表也不管用,只有系统还原有用。
于是在PE下发现还原备份的“C:\Windows\System32\Config\Software”这个文件即可运行5.2.4,说明影响因素存在于注册表“HKEY_LOCAL_MACHINE\SOFTWARE”中。在新系统安装新版VBSedit前后分别导出“HKEY_LOCAL_MACHINE\SOFTWARE”下面的键值,用Beyond Compare进行对比并分别还原,发现删除如下键值(或改名)之后5.2.4即可成功打开。

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{82298941-BA0B-CA4D-97E6-56E9A07E8A6A}]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{82298941-BA0B-CA4D-97E6-56E9A07E8A6A}\Implemented Categories]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{82298941-BA0B-CA4D-97E6-56E9A07E8A6A}\Implemented Categories\{B76F8BED-664A-4484-F8B2-0853A0C87911}]
复制代码
可是当我兴奋的到Win XP x64系统中实验时却发现,根本找不到这个键值,判断这个值应该根据不同系统有变化,因此不能找固定值。
如果要找出其中的算法(对于我)是不可能的,于是我想到监测安装程序对注册表的改动,找到对应值删除即可。
试用了安装监视软件并没有意义,因为已经安装过高版本的系统会一直存在使5.2.4不能运行的值,注册表没有变化安装监视软件就不会记录。
因此我用到了Sysinternals的“Process Monitor”

==========================================
解决办法 
==========================================
今天是研究的第6天了,终于解决了VBSedit 5.2.4不能运行的问题,即便是安装过高版本的也可以解决,首先打开“Process Monitor”(以3.0汉化版为例)
▼点击添加过滤。



▼过滤项选择“进程名称”,内容填写“uninstall.exe”,后点击添加。



▼然后添加“操作”,内容填写“创建注册表键”(英文为“RegCreateKey”),添加到列表中。



确定后会发现主板面板的Log没有了,因为程序还没检测到过滤出来的的事件。
▼现在运行新版本VBSedit的安装程序,就会出现检测到的事件



▼找到CLSID的最后一个(注:因为5.2.4汉化是32位的,所以64位系统要找到含“Wow6432Node”的路径)



▼跳转到后删除即可(图在另一个系统里拍的,所以路径和上一张不一样)



▼在安装了6.3.2之后运行5.2.4



==========================================

求知 
==========================================
在研究出解决办法后发现,需要删除的注册表键值应该是在“HKEY_CLASSES_ROOT\CLSID”下,与之前的“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID”判断有误,但之前的那个键值删除也能起作用,这就需要请教各位高手了,请问是什么原因呢?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++有价值的回帖:1、打开 process monitor
2、运行VBedit.exe,就算不闪也无所谓,不用管
3、进入process monitor,找<工具>,<进程树>那一项,找到发灰的VBedit.exe进程的第一个PID.
4、点<过滤器>,设置PID为刚看的那个值,应用,确定.
5、关掉工具栏右边倒数第3、4、5个显钮,只让显示进程活动.
6、拖动到最下面,找到最后一个Thread Create之后的Thread Exit点击一下.
7、再点倒数第5个注册表图标,打开显示注册表活动,看到了吗?退出之前判断的那个注册表键值,右击点”跳转到”,删除这个子键。
8、搞定!,你再试你的老版本的VBedit,可以成功打开了.

==============================================================================================
ab74
===vbsedit 5.2.4和 Procmon 工具下载地址:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐