关于Powerbuilder插入控件(insert control)时崩溃的问题

来源:互联网 发布:itools官方下载mac版 编辑:程序博客网 时间:2024/05/18 15:28

我的环境windows 7 64bit,Powerbuilder 12.5

试图插入控件时,PB崩溃。

解决过程:

1.重装PB,未解决

2.参照《pb插入ole控件点击insert control时pb应用程序自动关闭解决思路

http://blog.csdn.net/fcb_chenshi/article/details/5915969

很难理解原文的意思,没有做到。但通过这篇文章理解了PB为什么会崩溃。

3.按照网络上的提示

dos下面运行
for %a in (%windir%/system32/*.dll) do regsvr32.exe /s %a
for %b in (%windir%/system32/*.ocx) do regsvr32.exe /s %b

仍未解决。

 

4.在万般无奈之下,google搜索,找到了个思路:RegMon,即监视注册表的活动,看pb崩溃前最后读的哪一个注册表项

下载这个工具后,在win 7下无法运行。

再找,找到ProcessMonitor工具,可以监视注册表活动。

打开ProcessMonitor后,重现PB崩溃过程——运行PB,插入控件,崩溃

回到ProcessMonitor,可以看到跟踪结果太多,于是过滤(菜单Filter—>Filter...),过滤条件两个:

Process Name         is                        PB125.EXE

Path                         contains             OLE Object Bitmaps

过滤后看结果,发现最后一项果然是失败的:

Date & Time: 2014-06-25 09:45:22
Event Class: Registry
Operation: RegOpenKey
Result: NAME NOT FOUND
Path: HKCU\Software\Sybase\PowerBuilder\12.5\OLE Object Bitmaps\{488A4255-3236-44B3-8F27-FA1AECAA8844}
TID: 6568
Duration: 0.0000181
Desired Access: All Access

5.查注册表

HKEY_CLASSES_ROOT/CLSID能找到{488A4255-3236-44B3-8F27-FA1AECAA8844},

但在HKCU\Software\Sybase\PowerBuilder\12.5\OLE Object Bitmaps\找不到这项,找到问题的症结了!

 

6.问题的解决

那这个{488A4255-3236-44B3-8F27-FA1AECAA8844}是什么?看注册表未发现线索,于是百度,哈哈,是支付宝!

于是,卸载了支付宝相关的两个程序。

再进PB,插入控件,OK!问题解决了。

 

小结:

1)使用ProcessMonitor工具监视PB插入控件崩溃的过程

2)过滤出与PB插入控件时读取注册表的过程,列表里面的最后一项即为失败项。

3)查看注册表或者百度,找到失败项ProgID对应的软件,或卸载,或重新注册,OK。

0 0