捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
如何给exe文件加个菜单的演示程序
关键字:给exe文件加菜单 ProgPatch dll
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:高级 完成时间:2005/3/19
发布者:hxb_leiyuan 发布时间:2005/3/19
编辑器:DELPHI7 语  种:简体中文
分 类:应用软件 下载浏览:2191/15496
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
最近在大富翁论坛上有朋友提出如何给exe文件加个菜单,让它执行自己的功能。为此,我做了这个demo例子。首先先向大家道歉,我并没有做到想象中的效果。但核心代码还值得一看的。

文件夹中有三个子目录:1)patchdll,在里面存放的是补丁dll文件;2)patchexe,在里面存放的补丁外壳文件;3)ToBePatchedExe,里面存放的是自做
的一个待打补丁的程序;4)release,里面存放的输出文件。

使用说明:进入release文件夹,先运行ToBePatchedExe.exe,看看菜单的情况,然后关闭它,接着运行PatchExe.exe,看看效果吧。

郑重申明!
这是个demo程序,我用它来对其它的delphi程序打补丁时,发现存在严重的内存错误,这也许是因为我生成控件所占的内存不能得到很好的管理。而且许多windows控件用我的方法是不能生成的,但我的处理方式对只需获取信息的操作完全支持,夸张点说,你可以得到你想获取的一切信息。
本demo只是起到一个抛砖引玉的作用,希望读者在读通代码的基础上发挥自己的想象来尽一步完善。

补充说明:在动态生成菜单时,我发现必须在我的PatchDLL和PatchExe两个工程中引入ExceptionLog,这样可以避免一些内存错误。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论11条 当前显示最后6条评论
vagrant2005 2005/3/21 7:52:55
思路不错,谢谢,收下了
hxb_leiyuan 2005/3/21 14:39:18
只要安装了ExceptionLog,默认情况下以后每个工程会自动包含该文件。
zhihe 2005/3/21 18:18:44
能非提供ExceptionLog我找不到这个东西
li00000000 2005/9/7 9:53:16
厉害厉害厉害厉害厉害厉害厉害厉害厉害
sweetgun 2005/10/2 10:03:27
不能使用as , is 是因为应用程序和动态库使用的不是同一个对象树。大家都知道delphi的所有对象继承与TObject,但是对于静态编译的两个动态库(或者执行程序),他们各自拥有自己的TObject,这两个TObject名字一样,但是rtti不一样。比如说你在一个动态中创建了一个TBitmap,把这个对象传到其他动态库的函数中,如果函数中有这样的判断 AObject is TBitmap,肯定是False。

你的做法就是搞混了两个对象树,dll中创建的TMenuItem,它的内存结构和程序中的TMenuItem一模一样,但是它的类型信息完全不一致,最后不到之崩溃才怪。
yyyyyy 2006/10/8 16:38:21
只是临时修改。有什么用
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表