PB 怎么在其中创建一个按钮,点击它将关闭窗 口和应用程序

PB 怎么在其中创建一个按钮,点击它将关闭窗 口和应用程序,第1张

窗口的close或closequery事件中写以下代码

if messagebox("提示","是否退出?", Question!, YesNo!) = 1 then

RETURN 0

else

return 1

end if

1、问题现象:当在powerbuilder中插入OLE控件点击insert control时,应用程序自动关闭,如图

在网上查询时有人说是其他ocx(如金山,超星)冲突而导致的,毕竟现在的软件很多很多,怎么知道是那个软件冲突造成的呢?

2、原理分析

当我们点击OLE控件中的insert control时,pb会搜索那些控件可用,并且在PB中显示出来。

PB搜索控件的位置为:注册表中的"HKEY_CLASSES_ROOT/CLSID"下的子项(为DLL、OCX文件注册信息)

搜索到保存的位置在:"HKEY_CURRENT_USER/Software/Sybase/PowerBuilder/8.0/OLE Object Bitmaps/..."

也就是说pb搜索CLSID的子项保存在OLE Object Bitmaps中,当搜索CLSID中的DLL或OCX控件和PB有冲突时,CLSID后面的DLL、OCX控件就不会保存在OLE Object Bitmaps中,也就是说OLE Object Bitmaps没有完全加载所有控件,有的控件冲突导致中断使PB报错,找出冲突的控件是关键。

3、实战

(一)运行注册表

(二)在注册表中找到“HKEY_CLASSES_ROOT/CLSID”并导出保存为CLSID.REG,并且用记事本打开

临时关闭:

按Ctrl+Atl+Delete打开进程可以看到PnkBstrA.exe和PnkBstrB.exe这两个进程,点击后直接结束进程就可以。但是每次重启之后,上述两个进程会自动启动的。

永久关闭:

照上面方法 *** 作一次后,再直接到BF2的子文件夹里面,有个PB的文件夹,直接删除掉这个文件夹就可以了。

注:如果删除掉PB文件夹或者将PB文件移位,以后可能造成BF2不能正常游戏。一旦使用了上面2项方法,BF2就绝对玩不了网战。

好了!有问题再提吧!!!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12015785.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存