首页
社区
课程
招聘
Delphi程序启动(Flash)问题?
2004-7-13 22:00 5772

Delphi程序启动(Flash)问题?

2004-7-13 22:00
5772
Delphi程序启动(Flash)问题?

如何将现成的Delphi(.exe)程序的启动Flash(启动画面,假定程序设定运行显示后没有任何控制==默认一直占用屏幕显示下去),要卸载其Flash(想给它用Timer定义n秒控制怎么写代码),怎么考虑去为程序添加控制代码(定位、找关键生成句柄)的方法?例如:程序用ShowWindow显示Flash。喜欢Delphi的朋友相信你们这都会,教教小弟?

另:小弟有一某作者软件Delphi程序有Bug,启动Flash运行完毕一直占用屏幕显示。原因极可能在98下无法使用一功能,引起异常并有对话框提示,确定对话框后,画面依旧耀眼,但用OD加载调试,OD可以捕捉到这个异常,只需Shift+F9忽略异常,画面就不再占用屏幕而消失了(如OD不捕捉异常==忽略的话,情况就相反),不知是什么问题,问作者,他用英文答得我,说有N用户都反映这问题,他很奇怪,说没时间(不知要等到何时?),又问我知不知道Delphi是什么家伙,说他安装了Delphi(程序也是用Delphi写的),没有问题,叫我用就去装(很无奈???)。大家可以说说你们的见解吗?能否给个方法?Thks!

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

收藏
免费 2
打赏
分享
最新回复 (8)
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
apojie 2004-7-14 03:23
2
0
看不懂你的第一段~~~~

用DEDE分析,应该能比较清晰地了解他的程序思路
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
RoBa 16 2004-7-14 09:46
3
0
这软件作者真逗 :D
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
askformore 18 2004-7-14 10:17
4
0
最初由 apojie 发布
看不懂你的第一段~~~~


那好,我意思是如何定位找程序Flash的初始句柄的代码,能理解吗?

用DEDE分析,应该能比较清晰地了解他的程序思路


:) 那你来教我用好吗?DeDe3.5我有,用(脱壳后)它加载后只有在“类信息”一兰有显示信息,其它栏是空白一片,你教我分析……
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
askformore 18 2004-7-14 10:20
5
0
最初由 RoBa 发布
这软件作者真逗 :D


猜想,是作者处理异常设计方面的问题吧,我不会Dephli,可能是乱说?
雪    币: 202
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stuman 2004-7-14 12:10
6
0
1、拦截Flash窗口的ShowWindow函数,并删除之,就可以干掉Flash窗口。
2、不一定是作者处理异常方面的问题。这问题有点奇怪,用softice调试吧
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
askformore 18 2004-7-14 15:32
7
0
最初由 stuman 发布
1、拦截Flash窗口的ShowWindow函数,并删除之,就可以干掉Flash窗口。
2、不一定是作者处理异常方面的问题。这问题有点奇怪,用softice调试吧


问题2,我已经在你答复我前强行解决了(不过还是Thkx),不能像你说的那样直接删除,因为那是公用部分(很多地方都用它),脱了壳,利用启动FLash的第一性(排头),修改了 Call ShowWindow上面的指令代码走向,引它到我的代码判断,完成改为不显示;至于,出错对话框是发生异常后出来的(异常机制又是动态填充的),将就改为最近的跳 Call 判断。结果启动清静一会儿,功能使用没影响,就喝口水润润喉,这是纯属为“Bug”而隐藏“Bug”,大家就见笑了。

至于用softice调试,就是你们这些“前辈猛人”用的好了!

我想问,初始完的控件如TFlash(启动画面--一般都以资源放在主程序里),只差调用ShowWindow显示,它是否“有”或“仍”占用内存空间(怎样判定?);如果调用ShowWindow而不显示它,它又是否“有”或“仍”占用内存空间?
雪    币: 202
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stuman 2004-7-15 12:25
8
0
Flash窗口也有创建和销毁过程。窗口创建之后无论是否ShowWindow都一直占用内存,直到窗口销毁。
Flash窗口通常在主窗口创建之前创建,在主窗口创建完毕后销毁。一旦销毁就不占内存了。当然不排外有些懒人喜欢用delphi自动创建和销毁窗口来操纵flash窗口,这会延迟到整个程序结束的时候Flash窗口所占用的资源才被释放。
关于窗口类,您有任何疑问,可以直接查Borland公司提供的源代码,它位于文件Forms.pas中。
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
askformore 18 2004-7-15 13:43
9
0
最初由 stuman 发布
Flash窗口也有创建和销毁过程。窗口创建之后无论是否ShowWindow都一直占用内存,直到窗口销毁。
Flash窗口通常在主窗口创建之前创建,在主窗口创建完毕后销毁。一旦销毁就不占内存了。当然不排外有些懒人喜欢用delphi自动创建和销毁窗口来操纵flash窗口,这会延迟到整个程序结束的时候Flash窗口所占用的资源才被释放。
关于窗口类,您有任何疑问,可以直接查Borland公司提供的源代码,它位于文件Forms.pas中。


Thks,好详细!
游客
登录 | 注册 方可回帖
返回