易语言_黑月入门到中级

易语言_黑月入门到中级
学习各种高级外挂制作技术,马上去百度搜索(魔鬼作坊),点击第一个站进入,快速成为做挂达人。
无聊写这个教程,我就不细致排版了,您就将就看吧,我会尽量截图的。还有我的文笔很差。。。就不废话了,开始吧。。。要求:会易模块(*.ec)(只要知道怎么用就行,不用会写。;)会子程序(要知道怎么写和怎么用);知道API是什么(不会用都行,知道是什么就可以了)会基本的控件(如:窗口、按钮、编辑框。。。。等)。如果您还不会,那么我推荐您先去了解上面的内容再来看本教程,不然是看不懂的(天才除外!)目录:l我们分三步走:l一、使用模块做动态界面;l二、使用资源;l三、编译。
(一)、使用模块做动态界面
一、黑月的安装:  1.在本教程包到:黑月安装程序  1.33.7z这个文件,打开;  2.
3.4.提示正在安装à安装完毕5.文件安装完毕之后呢就要做一些设置了
在易编辑器菜单->工具->支持库配置,勾选“黑月编译器插件”支持库,如图:
如果没有什么意外,就会立即启动并运行黑月工具
工具菜单出现“黑月工具”和“黑月资源编辑器”菜单选项。
注意:如果勾选“黑月编译器插件”支持库时,易编辑器出错退出。这说明你的系统不支持黑月自动加工处理功能。遇到这种情况请自行编辑配置文件,比如:C:\Program Files\e\BlackMoon\BlackMoon.ini修改配置内容:[BlackMoon]Run=0将禁止自动处理功能,这时再重新启动易编辑器,再次勾选“黑月编译器插件”支持库。但没有自动处理功能很不方便,而且如果要同时编译资源,RC脚本文件路径和名称也需要相应变化,这以后再详细了解。3、关闭自动处理功能和手动选择处理。易编辑器菜单->工具->黑月工具,将出现黑月的设置窗口,如图:
“启动黑月编译器”选择框决定是否在易语言生成程序之后,自动处理成黑月程序。如果关闭,将不自动加工处理成黑月程序,恢复易编辑器原来的状态和功能。如果你的系统不支持自动处理的,勾选这个功能将导致易编辑器出错。
关闭开启这个功能,在易编辑器的输出窗口都有提示:自动化运维系统
《以上内容引用易语言官方论坛的大鸟在论坛上的发帖》数控机床防护罩
二、什么是黑月讲了这么久安装,都忘记讲什么是黑月了。。。我就不讲黑月深层的东西了,就讲作用,有兴趣的可以看一下,复制大鸟的帖子内容吧。大鸟的话:黑月是类似于斩月,目的是将易语言
程序小型化,脱离支持库运行的工具。但实现原理和方法又与斩月不同,不需要类似的斩月壳,而是分析并转化易程序为对象文件obj,再用链接器LINK.EXE重新编译链接。这样生成的黑月程序,具有更规范更优化的PE程序文件结构,并且带来更多的功能扩展(比如使用RC资源脚本生成PE标准资源),以及带来下好处:1、具有正常的PE可执行文件结构,经过反编译后生成的易程序代码清晰可见,完全呈现。汇编代码可分析可用专用软件跟踪调试,不会再产生误报。2、在脱离核心支持库的同时,又不废除原有核心库命令,而是转向调用功能类似的黑月核心库。就是说,黑月可以使用大部分的原核心库命令(非窗口操作),并且黑月核心库为本人模仿原核心库功能,再重新编写的静态库。由于黑月先天优势,可以静态库抽取代码片段合成编译,就是用到的命令函数才提取相应部分代码。不用到命令不合成到目标程序。这样的好处是既保持原有功能不变,又不使程序文件大小增加,附带冗余代码。易友们一直梦想的静态库抽取合成编译,今天在黑月已经实现了!(黑月支持的核心库命令看随后的附表)4、
黑月可以使用PE标准资源,用RC脚本编译生成。比如使用资源对话框模板创建窗口,并配合可视化的黑月RC脚本编辑器,比斩月又多一种更方便的界面设计功能,而且与汇编和C语言的R C脚本兼容通用,使黑月程序更接近于常规程序。5、黑月的DLL可以使用类似其它语言DLLMAIN入口函数(黑月为“Dll入口函数”),可以通过DLL的模块句柄访问DLL的PE资源、注入进程、多线程应用等等优点。
那是介绍,看了也不大懂吧?!
我们只要理解它的作用就行了。。。下面来讲作用:要了解黑月作用,那就得说说斩月,因为黑月是继斩月后的又一个强大的工具,且它们的目的是一样的。目的&原由:许多易友都知道由于易语言编译出来的程序都需要携带大量的支持库,导致即使是只有一个窗口的空程序,编译出来加上支持库也要1MB以上,而且,更为严重的是,许多杀软误报毒泛滥,许多人都为“报喜”而担忧。这时,易友中的一些高手就做出一个工具,名叫“斩月”。斩月的作用自然是为了解决这些问题的,而这些问题都是围着易语言支持库的而产生的,虽然支持库功能强大,是易语言的“宝藏”。但也因为支持库使得易语言编译的程序肥大,“报喜”率高。您想想,编译一个“动态库DLL”,需要带上一个易语言的“动态库DLL(fne),您能不”感觉怪模怪样的吗?编译一个EXE,一个空窗口一般就16KB,但易语言需要一个支持库后就成了1MB了。很大吧!而且,如果我们要用其它的扩展支持库呢?比如:我们一个程序代码中有一个命令是特殊功能支持库的调用子程序(&子程序1,,)而这个支持库的其它命令我们是没有用,为此我们这个程序就得打包这个支持库了,这样这个程序又得大好几十KB,或几M了(这个决定支持库的大小)。您再想想,编译后的易语言程序,因为它的PE格式(先不用理解什么是PE)的“特殊”即使程序加了“壳”(壳:是一种保护EXE或DLL的加密算法,有一种工具是专门为EXE 或DLL做这种加密的,这种工具叫“加壳程序(工具);简要说说,不用深究,这样理解”着就行),破解者也能因为这个“特殊”而能“秒脱”(脱壳(去掉壳的加密算法),秒脱(一个俗称,就是不用费太大的劲,就
能快速的脱壳)。这样的话,本来是用来加密的一种大好)手段就要被抛弃了,当然有能耐的人,可以利用您能耐的计算,做“防破”。还有一个致命的毛病,就是“报喜”(由以前的误杀名词而来,现在已经成为俗话了),因为“特殊”杀软较难定位“特征码”(定位特征码:是杀软判断某个文件时候有“毒”的一种方法),易公司声明是技术落后问题,但“特征码”是目前最有效的一种技术(这里不代表要说什么,如果您有想法,与我无关),所以杀软就发现“特征码”了,就是支持库,因为编译器是编译而已,写什么是人说的算,这个世界,什么人都有,有写“黑”的人也不出奇。而易语言编译出了的东西特点就是“支持库”那就“特征码”了。介绍一大堆了,说白了斩月和黑月就是为了脱离支持库而生的。虽然斩月和黑月目的一样,但前面也说了,黑月是继斩月又一强大工具,所以根据进化论(雅!、自然规则(才!))黑月是比斩月更强悍了。^_^三、黑月要点这是黑月的教程,斩月就不讲了,会了黑月,斩月自然也就学会了(废话)要黑月之前先要知道下面几点:  1.先说明黑月只能支持核心库命令,同时支持变体型和对象型(除“创建字体对象”“取和回字体”之外)。  2.知道1之后,我推荐,大家黑月的时候,把除了核心库以为,把其它扩展支持库都关了,还有要保留开着黑月支持库(又废话)  3.黑月支持的命令表(我还是列出来吧,反正是复制而已)流程控制如果如果真判断判断循环首判断循环尾循环判断首循环判断尾计次循环首计次循环尾变量循环首变量循环尾到循环尾跳出循环返回结束算术运算相乘相除整除求余数相加相减负取符号取绝对值取整绝对取整四舍五入求次方求平方根求正弦求余弦求正切求反正切求自然对数求反对数置随机数种子取随机数逻辑比较等于不等于小于
mrxj大于小于或等于大于或等于近似等于并且或者取反位运算位取反位与位或
位异或左移右移合并整数合并短整数变量操作赋值连续赋值数组操作重定义数组取数组成员数取数组下标复制数组加入成员插入成员删除成员清除数组数组清零环境存取取命令行取运行目录取执行文件名读环境变量写环境变量
文本操作取文本长度取文本左边取文本右边取文本中间字符取代码寻文本倒文本到大写到小写到全角到半角到文本删首空删尾空删首尾空删全部空文本替换子文本替换取空白文本取重复文本文本比较分割文本指针到文本字节集操作取字节集长度到字节集取字节集数据取字节集左边取字节集右边取字节集中间寻字节集倒字节集字节集替换子字节集替换取空白字节集取重复字节集分割字节集指针到字节集
数值转换到数值数值到大写数值到金额数值到格式文本取十六进制文本取八进制文本到字节到短整数到整数到长整数到小数时间操作到时间增减时间取时间间隔取某月天数时间到文本取时间部分取年份取月份取日取星期几取小时取分钟取秒指定时间取现行时间置现行时间取日期取时间磁盘操作取磁盘总空间取磁盘剩余空间取磁盘卷标置磁盘卷标改变驱动器改变目录取当前目录
创建目录删除目录复制文件移动文件删除文件文件更名文件是否存在寻文件取文件时间取文件尺寸取文件属性置文件属性取临时文件名读入文件写到文件文件读写打开文件打开内存文件关闭文件关闭所有文件锁住文件解锁文件移动读写位置移到文件首移到文件尾读入字节集写出字节集读入文本写出
文本读入一行写文本行读入数据写出数据是否在文件尾取读写位置取文件长度插入字节集插入文本插入文本行删除数据系统处理
运行取剪辑板文本置剪辑板文本剪辑板中可有文本清除剪辑板取屏幕宽度取屏幕高度取鼠标水平位置取鼠标垂直位置取颜数信息框鸣叫取启动时间置等待鼠标恢复鼠标延时取文本注册项取数值注册项取字节集注册项写注册项删除注册项注册项是否存在取默认底快照读配置项写配置项取配置节名取操作系统类别多文件对话框媒体播放播放音乐停止播放其他选择多项选择是否为空取数据类型尺寸取颜值处理事件
写到内存置入代码网络通信取主机名通信测试转换为主机名转换为IP地址控制台操作标准输出标准输入四、进入主题(有了前面的铺垫我们就开始了。)因为黑月需要做窗口的话,要写许多代码,且要调用许多基层函数(API),对大家的入门不利,这里我就这样来讲,先学动态创建窗口和控件(用“界面库”即一些论坛大大们写的模块“.ec”,然后就学使用资源“*.rc”),最后嘛~这个教程的完毕。。。(老说废话。)(一)动态创建界面:1.在动态创建之前呢,我们先要知道,现今3种流行的界面库第一种尘土库.界面库(这个效率高)第二种斩月(这是最古老的,最先提出斩月的)第三种孤岛版斩月(这个是斩月的界面库的增强版)这些模块(界面库)就会在本教程发表时,同时共享。2.我这里呢就用孤岛版的做开头,然后呢就用尘土的,第二种就留给大家自己发掘了。废话不说了,我们开始了。。。在写代码之前,先要做下面几点:图比较实际,看图:
进入以后得马上做这一步,很重要(因为。。不废话了,做就是了!。)在菜单里:程序à配置
后注:上面的版权信息填了也没有用,不会在编译后的程序体现的,具体怎样做到在编译后的程序体现,后面会有讲到,请往下看。。。  3.学第一个界面库命令在引用孤岛这个界面库后打开查看,我们发现里面有许多控件对象(类)
我们先学那个窗口控件对象(类)
上面的代码中_启动窗口.创建(,,,,,,,,,)这里是创建一个窗口文本代码:.版本2.
程序集程序集1.程序集变量_启动窗口,控件_窗口.子程序_启动子程序,整数型,,本子程序在程序启动后最先执行_启动窗口.创建(,,,,,,,,,)返回(0)'可以根据您的需要返回任意数值注:为了与常规的代码一样,我特意用这种方式声明变量和子程序,声明名称是自由的。
执行后效果图:
我们接下了尝试加一条代码来挂接事件(__启动窗口_窗口完毕)代码图:
信息框文本内容有误,我就不改图了。正确代码:信息框(“启动窗口被双击了。0,“提示:”,”)文本代码:.版本2
.程序集程序集1.程序集变量_启动窗口,控件_窗口.子程序_启动子程序,整数型,,本子程序在程序启动后最先执行_启动窗口.创建(,&__启动窗口_创建完毕,,,,,,,,)返回(0)'可以根据您的需要返回任意数值.子程序__启动窗口_创建完毕_启动窗口.事件_被双击(&_启动窗口_被单击).子程序_启动窗口_被单击信息框(“启动窗口被双击了。0,“提示:”,”)效果图:
窗口的就到这窗口.创建()命令子程序名:创建如果主窗口是易窗口(_启动窗口),你应当提供父窗口句柄。注意:同一程序中只能有一个主窗口!返回值类型:整数型参数<1>的名称为“父窗口”,类型为“整数型”,允许接收空参数数据。注明:如果你要创建一个主窗口,则不需要提供父窗口句柄。注意:同一程序中只能有一个主窗口!。参数<2>的名称为“窗口创建完毕子程序”,类型为“子程序指针”,允许接收空参数数据。参数<3>的名称为“标题”,类型为“文本型”,允许接收空参数数据。注明:窗口的标题。参数<4>的名称为“左边”,类型为“整数型”,允许接收空参数数据。
参数<5>的名称为“顶边”,类型为“整数型”,允许接收空参数数据。参数<6>的名称为“宽度”,类型为“整数型”,允许接收空参数数据。注明:窗口高度。参数<7>的名称为“高度”,类型为“整数型”,允许接收空参数数据。注明:窗口宽度。参数<8>的名称为“窗口风格”,类型为“整数型”,允许接收空参数数据。注明:为空默认带最大化\最小化按钮\普通可调边框\带系统菜单\可拖动大小。参数<9>的名称为“可视”,类型为“逻辑型”,允许接收空参数数据。注明:窗口创建完比立即显示,默认为真。参数<10>的名称为“附加风格”,类型为“整数型”,允许接收空参数数据。注明:用位或()组合。上面列出了
它的提示参数,供大家研究吧。。。下面我们来创建一个按钮和响应一个事件:代码图:
文本代码:.版本2.程序集程序集1.程序集变量_启动窗口,控件_窗口.程序集变量按钮1,控件_按钮.子程序_启动子程序,整数型,,本子程序在程序启动后最先执行_启动窗口.创建(,&__启动窗口_创建完毕,,,,,,,,)返回(0)'可以根据您的需要返回任意数值
.子程序__启动窗口_创建完毕按钮1.创建(_启动窗口.取句柄(),,,,,,,)按钮1.事件_被单击(&_按钮1_被单击).子程序_按钮1_被单击信息框(“您点了按钮一。0,)”,效果图:
孤岛的创建窗口和响应事件就到这了,希望大家能举一反三。。去发掘更多的功能。。
4.尘土库的控件由于尘土库是收费的,我只有预览版,所以就用预览版来讲吧。第一个命令—挂接事件:由于界面的创建和孤岛的没有什么不一样,我就直接讲事件了。尘土库是采用HOOK的技术(这个不用深究,不知道也行。)来响应事件的,所以事件需要挂接。代码图:
文本代码:.版本2.程序集程序集1.程序集变量_启动窗口,窗口类.程序集变量按钮1,按钮类.程序集变量程序,应用程序类.子程序_启动子程序,整数型,,本子程序在程序启动后最先执行挂接事件(按钮1,#按钮事件_被单击,&_按钮1_被单击)_启动窗
口.创建(,,,,380,250,,)按钮  1.创建(_启动窗口,“按钮”,,,,,)按钮  1.显示()_启动窗口.显示()程序.消息循环()
返回(0)'可以根据您的需要返回任意数值.子程序_按钮1_被单击
信息框(“按钮1被单击。0,)”,效果图:
五、生成界面代码发现了吗?上面的按钮都是位于0,0的坐标上的,还发现创建命令需要我们填入坐标,相信大家都知道了吧,改改坐标不就完了~嘻,您答对了,但只对一半,因为:您想想。。做窗口光靠这些数字,您晕吗?那得加。上多少想象力也很难想出控件的位置及其大小吧!有问题,自然有解决啦!(不然我也不会说,HOHO^_^)。这还是要用到一个模块(我会随着教程的发布而共享的)下面来看操作吧(引用了一个以前智圆行方的教程)操作说明:1、新建一个窗口程序,并引用上述模块2、设计好界面(仅仅是界面,不要编写代码,模块不会帮您将代码也改过来的)(需要注意:有些组件的属性设置了也没有用!)3、双击窗口编辑区,进入“_启动窗口_创建完毕”子程序4、输入代码“创建代码()”5、运行,提示您选择斩月版本,由于本教程以孤岛版斩月为主,默认为36、确定后,待程序运行,关闭它,此时,界面的代码已经复制到剪辑版上,你便可以复制到斩月程序上了图(我的):
保安接线排设计好了就引用模块
在启动窗口创建完毕事件中使用模块的命令创建代码()
塑料空心球选择您要用那种界面库
选择好了就确认输入自动生成代码,并且已经置入剪切板了。
这是模块生成的命令:.版本2.程序集变量启动窗口,控件_窗口,,.程序集变量标签1,控件_标签,,.程序集变量编辑框1,控件_编辑框,,.程序集变量按钮1,控件_按钮,,.版本2.子程序_启动子程序,整数型,,本子程序在程序启动后最先执行启动窗口.创建(,&启动窗口_创建完毕,"",50,50,380,250,,真)返回(0).版本  2.子程序启动窗口_创建完毕,,,标签  1.创建(启动窗口.取句柄(),"界面代码生成示例",127,88,120,24,21)编辑框  1.创建(启动窗口.取句柄(),"",87,40,200,20,,,)按钮  1.创建(启动窗口.取句柄(),"按钮",139,136,96,32,)把它们复制到程序中就可以了。
(二)、使用资源
前面是动态创建窗口,下面来讲怎样用资源创建窗口。还是老规矩:选择Windows控制台程序à做好配置(详细:见本教程↑)下面来看新的:在配置好之后选择保存(这很重要,现在先别问为什么,一会就知道了。)relay-spdt
新建一个文件夹来保存源码(也先别问为什么,先做了再说。)
源码保存后就可以创建资源和写代码了,由于使用资源相对比较难理解,我们还是使用模块。我们先来创建资源。(菜单)工具à黑月资源编辑器详细:图选择该菜单后,它会询问您
一般选是就可以了选择是后他创建了一个默认的图标,当然您也可以选择您喜欢的图标
先顿一顿,插上一张图,大家先看看
看完插图,应该对资源工具的界面有了初步了解了,它是一个做程序窗口和组件的工具(暂时先这么理解)。我们接着。。。我们来添加一个对话框
根据情况设置一下右边(资源属性)
资源效果:
有需要的话,可以预览一下
资源设置好了然后保存之后就可以输出名称了(注意保存,这个工具容易出毛病,不稳定。)

本文发布于:2024-09-21 04:37:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/230567.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程序   文件   文本   启动   代码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议