当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 文/jorge如上述,本程序分为了接口层和算法层。
 

 

    摘要:文/jorge有了前述的数据,编写接口层似乎已经不成问题了。现在来构思一下程序运行的过程。说句实话,那种对于某种变化实时作出响应的程序,一般都用什么方法编成,本人并不很了解,推测无非是两种思想,一种是用一个线程不断地对这个变化进行检查,发现改变则动作;另一种是注册一个类似于钩子的东西,用回调函数来处理。无疑第二种方式要更节省系统资源,只是难在本人对windows的钩子掌握的还一塌糊涂。若换了个高手......
    摘要:花了一个下午翻了msdn,写了这个例子,为了安全,我用delphi建了个什么也没有作的程序prjzzhost.exe,将它用作被注入的宿主进程.写了一个testdll.dll,里面只有一个log函数,用来在文件test.txt中输出信息.最重要的一个程序project1.exe是用来注入的.测试环境: windows server 2003 + delphi 7.0程序很简单,高手就不用看了.废话......


扫雷外挂的设计与实现(三)

文/jorge

================================================================= 【程序编程相关:Authorware UCD 开发大揭秘

如上述,本程序分为了接口层与算法层.上述全局变量与常量,基本都属于接口层的内容.下面,来看接口层的具体实现.其工作的第一步,是要捕获扫雷窗口并取得其信息.这由函数getminewindow来完成: 【推荐阅读:Authorware UCD 开发大揭秘

【扩展信息:Authorware UCD 开发大揭秘

//试图取得可用的扫雷窗口,返回值表示是否成功.若成功,则全局变量

//minewnd.minedc.areaheight.areawidth都得到相应的填充.若失败,则以上变量的值无意义.

function getminewindow: boolean;

var

  clientrect: trect;

begin

  result := false;

  minewnd := findwindow(nil, mine_window_title);           //检查是否存在“扫雷”窗口,并且必须为当前窗口

  if (minewnd = 0) or (getforegroundwindow <> minewnd) then

    exit;

  minedc := getdc(minewnd);                                //取得“扫雷”窗口的设备上下文

  if minedc = 0 then

    exit;

  getclientrect(minewnd, clientrect);                      //检查“扫雷”窗口的内容是否全部显示在屏幕上


...   下一页
 ·borland第三方组件安装方法     »显示摘要«
    摘要:不是由borland提供的组件叫第三方组件:安装方法:就目前常见的各种形式的组件的安装方法介绍一下。 1 只有一个dcu文件的组件。dcu文件是编译好的单元文件,这样的组件是作者不想把源码公布。一般来说,作者必须说明此组件适合delphi的哪种版本,如果版本不对,在安装时就会出现错误。也正是因为没有源码,给使用者带来了不便,那就是一旦delphi版本升级,此组件就不能再使用了,当然有的作者给出了几......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE