在CB中编程的时候,最好将程序的文件名保存成你想要的名字,别用默认的名字,默认的名字是Unit+数字组成,而不是类名之类的,这是我不喜欢CB的一个原因,另外一个原因是没有全屏幕专家界面,编写代码的时候其他的太碍事,第三个原因是可以在任意的地方写代码,我的代码又没有具体的风格,经常造成莫名其妙的错误。喜欢他的原因是因为用它开发东西太快了,而且方便,比在VC中默写代码方便多了。
废话说完,可以添加外挂窗口的视图,在New菜单中选择New Form,如果你想New其他的话我不反对,能不能得到正确的结果我就不知道了。
网上有不少人问怎么在游戏中弹出外挂窗口,我已经回答的有点不耐烦了。在CB中做是最方便的事情了,但得设置好控件的属性,因为我对使用VC来编写界面不熟悉,更多的时候我都是直接使用API来编写的(我没有学习MFC的打算),所以对于喜欢VC的朋友们只能说抱歉了。
对于新窗体的属性设置是最重要的,要不然莫名其妙的错误和结果让人变得神经。下面是我对dll中窗体属性的一些总结,如果你有其他不懂的地方,可以给我E-Mail或者MSN或者QQ。
1、 Visible属性一定要为false,否则窗体没办法移动
2、 FormStyle属性最好为fsNormal,但一定不要是fsMDIChild或者fsMDIForm,这两个会引起莫名其妙的错误。
3、 如果刚开始弹不出来的话,将BorderStyle属性改为bsDialog。我在后面的教程中由于要重载TForm的函数,因此这里是不是必须为bsDialog不太清楚了,毕竟是很早以前的代码了。
其他的注意点好像没有了。下面是CreateThread调用中的Thread1函数实现:
DWORD WINAPI Thread1(PVOID param)
{
TwgHookForm* wgHookForm;
wgHookForm = new TwgHookForm(NULL);
wghandle = wgHookForm->Handle;
/*暂时将下面的发送消息屏蔽掉,我在窗体创建之后需要窗体做一部分必要动作,所以采用发送消息的机制来了,其实并不是必需这么做的,由许刚开始编写的时候,APIHOOK中的内容都是通过Message的方式来做的,这里为了方便就通过Message来弄了,算是点历史原因吧*/
SendMessage(wghandle, WM_USER + 2, NULL, NULL);
wgHookForm->ShowModal();
delete wgHookForm;
return 1;
}
到现在为止应该可以在游戏中弹出外挂窗口了,我们的第一步也算完成了,外挂程序的平台到现在为止搭建完了,剩下的就是工具的制作和必要代码的编写。在下一节中我准备说一下APIHOOK的方法。
如果因为本教程引起其他的后果的话,则与本人无关,本人只讲技术实现。如果要转贴的话,请注明出处,如果有疑问或者商议的话,请发E-Mail到zeze0556@sina.com或者QQ:23033206留言,MSN:zeze0556@msn.com。另外请勿给我信箱发垃圾邮件,在添加好友的时候一定要写好附言,我已经被莫名其妙的广告信件和流言蜚语吓得没有胆了。算是我求各位大虾了。
[首页] [上一页] [下一页] [末页]
