剑仙十号
外挂工程师
关注数: 19
粉丝数: 442
发帖数: 3,966
关注贴吧数: 96
文件类。"\r\n" 是txt文档的换行符。 文件类。"\r\n" 是txt文档的换行符。 独上西楼 17:00:20 请问大家,文件末尾写字符(fd,"\\n"&"测试结果如下" & 变量a) 哪个地方写错了,好像无法换行 独上西楼 17:20:24 无法换行,谢谢 厚德载物。 17:42:58 "\r\n" 是txt文档的回车换行。 文件末尾写字符(fd,"测试结果如下:" & 变量a &"\r\n") 独上西楼 17:44:10 成功了,谢谢群主。
图色类。定点比色,颜色匹配() 图色类。定点比色,颜色匹配() 用参数1,参数2 座标点的颜色值,跟参数3的颜色值 作比较。 参数3,可以设置多组颜色值,以 | 作为分隔符。 ret 为索引值。 返回0 表示与颜色值0 相同, 返回1 表示与颜色值1 相同, 返回2 表示与颜色值2 相同. ………… ………… 都不相同的,(ret == -1) 找图也是这样,多组图片,以 | 作为分隔符。 var ret = cmpcolor(100,200,"FFFFFF|DEE4ED|FADDAD",1.0) traceprint(ret) ======================================================= 例子 : var run = 1 while(run) var ret=cmpcolor(4,4,“DEE4ED”,1.0) if(ret>=0) //不用加血. elseif(ret==-1) //按加血键. end sleep(100) end ======================================================= 窗口颜色匹配(hwnd, x1, y1, 颜色值, 相似度) window_cmpcolor (hwnd, x1, y1, color, sim) 后台用windowcmpcolor(),需要获取窗口句柄,后台窗口 的座标。 大漠cmpcolor( )也是这样。 绑定窗口句柄后,就是后台_颜色匹配()
鼠标释放类。如何实现 拖动一个exe文件,得到其全路径 猪是 鼠标释放类。如何实现 拖动一个exe文件,得到其全路径 猪是念着顺 : 引入shell32。首先初始化, 让窗口或控件,接收从shell拖放过来的文件 再调用系统api,DragQueryFile, 获取文件信息。 稳定。 : 百度搜索 :DragQueryFile 就能得到 大量 VC++ 源码, 翻译一下,变成tc代码。 在TC 示例里面, 也有 DragQueryFile()源码。 F1_帮助文档,3 windows平台, 6 dllcall, 什么是回调函数 回调函数的使用,回调函数实际应用: 第三个:窗口子类化 DIALOGPROC
递归爆栈。 函数1 调用函数2,函数2 调用函数3,函数3 递归爆栈。 函数1 调用函数2, 函数2 调用函数3, 函数3 调用函数4, 函数4 调用函数5, 函数5 调用函数6, ...... ...... 层层递归,在旧栈基础上 建立新栈,再在新栈基础上 建立新新栈。 执行点 不能返回主函数,就会爆栈。 爆栈后,脚本就会停止执行。 ======================================================= 少用串联式 调用。 多用并联式 调用。 主函数() 调用子函数1,返回 调用子函数2,返回 调用子函数3,返回 调用子函数4,返回 调用子函数5,返回 ………… 结束 ======================================================= 少用串联式 调用。 多用并联式 调用。 主函数() 调用子函数1, 子函数1 调用子函数2, 子函数2 调用子函数3, 子函数3 调用子函数4, 子函数4 调用子函数5, 这种是错误,多次调用不能退出 会爆栈. ………… 结束
配置类。路径类。 配置类。路径类。 大神们,在exe根目录下, 创建123.txt,该怎么写 .\\123.txt .\\ ,代表exe的根目录。
植物大战僵尸。用南瓜壳 会增加遇敌距离用花盘 可以减小遇敌距 植物大战僵尸。用南瓜壳 会增加遇敌距离 用花盘 可以减小遇敌距离。 花盘,价钱25,卡槽回复时间7.5秒,可以当垫材。
找图示例。 选择 IDE左上角__的"项目管理",右键"资源 找图示例。 选择 IDE左上角__的"项目管理",右键"资源",插入资源(I),把bmp 添加到资源。 dm.dll,txt字库,也可以打包到资源。
植物大战僵尸。我想说 玩8炮真有点累手 我自己感觉 玩四炮要 植物大战僵尸。我想说 玩8炮真有点累手 我自己感觉 玩四炮要休闲一些…… 虽然每波的鼠标点击次数多,但节奏放慢了不少而且还不用操心MJ。
植物大战僵尸。一个飞贼最少需要多少个曾哥消灭啊? 冰杀 用两 植物大战僵尸。一个飞贼最少需要多少个曾哥消灭啊? 冰杀 用两曾, 不冰 必须四曾。
植吧。火球用寒冰菇,冰球用辣椒 植吧。火球用寒冰菇,冰球用辣椒 低头多次冰住,然后多炮猛轰就是
tc简单开发。数学求幂(),数学开方() tc简单开发。数学求幂(),数学开方() 按键精灵。数学求幂 ^,数学开方 青柠 :我从按键转TC了。 谁会按键精灵,还有tc的语法,想转换一段代码 【^】 开方( (x1-x0)^2 + (y1-y0)^2 ) 稳定。 :数学求幂,是用这个符号【^】 在直角三角形中,已知两直角边,求斜边的长度。 公式 :数学开方(直角边a 的平方 + 直角边b 的平方) tc7.0代码 : 数学开方(数学求幂(a, 2) + 数学求幂(b, 2)) 在3D游戏中,写定点回位() 要经常用到这公式。 ======================================================= 月影千云 : 变量 起点x=0 变量 起点y=0 变量 终点x=3 变量 终点y=4 变量 两点长=数学绝对值(终点x-起点x) 变量 两点宽=数学绝对值(终点y-起点y) 变量 斜面长度=取整(数学开方(数学求幂(两点长,2) +数学求幂(两点宽,2))) 调试输出(斜面长度) 稳定。 :不是。 这个是直角三角形,求斜边的公式 勾股定律,是一种特殊的定律。 直角边 a,必须是3的比例 直角边 b,必须是4的比例 . 直角三角形,求斜边公式,不用规定这个比例。
等待单位 不能设置过大 非要等待() 那么久,可以for(v 等待单位 不能设置过大 非要等待() 那么久,可以 for(var i=0; i<秒数; i++) sleep(1000) end
附件。TC怎么释放附件 附件。TC怎么释放附件 刚从按键精灵爬到TC 按键精灵可释放附件,TC怎么释放附件 稳定。 : tc的资源目录,相当于按键精灵的附件。打包到资源,即打包到附件。 操作方法 : 选择 IDE左上角__的"项目管理",右键"资源",插入资源(I),把bmp 添加到资源。 dm.dll,txt字库,也可以打包到资源。 跟VS的vc++一样,资源里面的东西,不需要手动释放。 脚本执行,释放到 临时目录。 脚本结束,删除 临时目录。 当然,也可以用 var path = 获取资源路径("rc:") traceprint(path) 文件拷贝() 把资源里面的东西 复制出来。 tc 向VS2017靠拢,这比按键精灵更科学。 ======================================================= 例子 :把 1.bmp 添加到资源。 调用时,"rc:1.bmp" 这样写代码就行。 变量 x, y, ret ret=找图(0,0,500,500,"rc:1.bmp","101010",0.9,0,x,y) 如果(ret>0 && y>0) 消息框("x:"&x&" y:"&y) 结束
控件,网页类。判断网页加载() 是否完成 功能 执行()// 控件,网页类。判断网页加载() 是否完成 功能 执行() //先在界面上,拖出个"浏览器0". 网页跳转("浏览器0", "http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.baidu.com%22&urlrefer=caeab4b6c3410bb04654e9f88559ba00) var 加载 = 0 for(var i=0; i<100; i++) var bool = 网页加载("浏览器0") if(bool == 1) 加载 = 1 break end sleep(100) end //for_end. if(加载 == 0) messagebox("网络异常,无法加载网页。请检查网络连接.") exit() end 结束 稳定。 : 判断网页加载(),是否完成。 如果网页加载完成,就 跳出 . 打开tc,F1_帮助文档。 1.windows平台,2.控件,18网页类 网页加载() 用while循环,用网页加载命令,断网了就会死循环。
免注册调用大漠。3.1233版本 var 线程ID功能 执行 免注册调用大漠。3.1233版本 var 线程ID 功能 执行() 免注册测试() 结束 功能 按钮0_点击() 免注册测试() 结束 功能 启动_热键() var ret = 线程获取状态(线程ID) //防止线程重启动,线程不能关闭. if(ret == 0) 线程ID = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(线程ID) 结束 功能 免注册测试() //测试 var dm = 插件("dm.dmsoft") traceprint(vartype(dm)) var ver = dm.Ver() traceprint("大漠的版本号:" & ver) dm.Moveto(0, 0) sleep(30) dm.RightClick() sleep(30) 结束 //防检测, 防止第三方. 功能 大漠3点1233免注册_初始化() //atl.dll 由论坛大神编写,感谢。 atl.dll是标准dll,适合所有语言调用. //例如,使用Delphi7,免注册调用大漠. 使用c++,免注册调用大漠. 使用c#,免注册调用大漠. 防检测. //pj大漠3.1233收费函数的功能,请参考 剩竹大神的代码。 //pj大漠6.1233收费函数的功能,请参考 思想者的代码。 // //注意: 免注册代码,必须写在窗口初始化。 //在执行完这些代码前,不要创建大漠对象,不要操作大漠对象。 //否则,会因为对象无法覆盖,调用出错。 var ws = 插件("Wscript.Shell") ws.run("regsvr32 atl.dll /s") var path, atl路径, dm路径 path = 获取资源路径("rc:") atl路径 = path & "atl.dll" dm路径 = path & "dm.dll" var 逻辑值 = 动态库调用(atl路径, "int", "SetDllPathA", "char *", dm路径, "int", 0) traceprint("免注册情况,返回1 成功,返回空 失败:" & 逻辑值) var dm = 插件("dm.dmsoft") traceprint(vartype(dm)) var ver = dm.Ver() traceprint("大漠版本号:" & ver) 结束
多线程。TC一直循环到 按终止键。 多线程。TC一直循环到 按终止键。 新手 : 请问一下TC怎么才能循环到 按终止键呢?单线程可以,多线程就不行了。 群主 : var hThread1, hThread2 var run1, run2 功能 执行1() while(run1) // sleep(100) end 结束 功能 执行2() while(run2) // sleep(100) end 结束 功能 启动_热键() var bool = 线程获取状态(hThread1) if(bool == 0) run1 = 1 run2 = 1 hThread1 = 线程开启("执行1", "") hThread2 = 线程开启("执行2", "") end 结束 功能 终止_热键() run1 = 0 run2 = 0 结束
进制转换。10进制到16,16进制到10 进制转换。10进制到16,16进制到10 VS。控制台输出,printf() VS的%d,跟TC 字符串格式化("%d") 一样 %x :把参数2,格式化成_16进制字符串 %d :把参数2,格式化成_10进制字符串 参数1用 % 做分隔符。 参数1带1个%,后面就继续跟_1个参数. 参数1带2个%,后面就继续跟_2个参数. …… …… 参数1带n个%,后面就跟有n个参数. ======================================================= 例如: var ret = 字符串格式化("%s %f %d %x %c", "aaf", 20.5, 50, 255, 65) %x 转成十六进制小写字符 %X 转换成十六进制大写字符 %d 转换成十进制字符 %f 转成浮点数值字符 %c 转换成对应ascii字符 %s 转换成字符串 ======================================================= 十六到 10进制,10 到十六进制, 这不是很简单吗? var ret ret = 字符串格式化("%d", #a) ret = 字符串格式化("%x", 255) 你学习一下VS,TC这点小问题 手到擒来的。
8封装。用函数封装 系统api 8封装。用函数封装 系统api 先设定C99标准。 设定标准,有助于tc健康发展。 1、增加库文件(****.t文件): 右键“项目管理-**项目名字”。 添加,新建文件(N) 文件名: structAPI,位置: 使用默认的。 2、把自定义的结构体/API函数,封装到“structAPI.t”文件。 3、定义部分带0。封装部分带0。 带0的,表示这是形参,是定义部分。 不带0的,表示这是实参,是调用部分。 // C++中调用系统API,可以直接写/直接调,简直和调用C内建api一样简单。 但在aj,tc,e中调用系统API,都得先定义,先声明,麻烦多多的。 把常用系统API/ 常用API结构体,封装到“structAPI库.t”。 当某项目 使用到某个API时,在项目中新建一个“structAPI.t”, 再在“structAPI库.t” 中搜索该API名字,复制到“structAPI.t”使用。这样就省力多了。平时多积累,用时少费心。易api伴侣也是这样操作。 // 重用性强。编程就有这种好处, 来来去去的,都是这些东西。一次编写,多次调用,这不是吹牛的。 ======================================================= 封装,不带传址参数的api。 这是比较简单的。 api带几个参数,函数就定义几个参数。 api带返回值,就用return返回数值。 照单拾药,照本宣科就行。 // 封装带有传址参数的api。 用函数封装,带有传址参数的api,形参必须带上&。 什么是形参,什么是实参?参考教程: 第三法,函数的定义。形参和实参。 第三法,函数的定义。引用传参的学习。 . 例子:GetCursorPos,VB声明: Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long 说明:获取鼠标指针的当前位置返回值Long,非零表示成功,零表示失败。 会设置GetLastError参数表,参数类型,及说明lpPointPOINTAPI,随同指针在屏幕像素坐标中的位置载入的一个结构。 在VB中, ByVal 代表普通传参,是传值的。 ByRef 代表引用传参,是传址的。 VB默认是传址的,省略标识ByVal,都默认为传址。Ip也代表传址。 . VC声明 Api 函数功能:该函数检取光标的位置,以屏幕坐标表示。函数原型:BOOL GetCursorPos(LPPOlNT IpPoint)。参数:IpPint:POINT结构指针,该结构接收光标的屏幕坐标。 Ip是代表传址。 ——————————————————————— ——————————————————————— 执行部分: 功能 执行() var pt = pt0()//用新数组pt,继承结构体。 GetCursorPos(pt) messagebox(pt["x"]["value"]&","& pt["y"]["value"]) 结束 // 定义部分。封装部分。 功能 pt0()//定义结构体。使用下一行要封装的数组名,作为函数名。 var pt0 = 数组() pt0["x"] = 数组("long"=1,"value"=0) pt0["y"] = 数组("long"=1,"value"=0) return pt0 结束 功能 GetCursorPos(&pt0)//定义api。把下一行要封装的api名,作为函数名。 //封装带传址参数,形参必须带上&,&pt0。 var ret0=dllcall("user32.dll","long","GetCursorPos","pstruct",pt0) return ret0 结束 ======================================================= 上面的讲解繁多。 把注释去掉,代码还是很简洁的。 功能 执行() var pt = pt0() GetCursorPos(pt) messagebox(pt["x"]["value"]&","& pt["y"]["value"]) 结束 功能 pt0() var pt0 = 数组() pt0["x"] = 数组("long"=1,"value"=0) pt0["y"] = 数组("long"=1,"value"=0) return pt0 结束 功能 GetCursorPos(&pt0) var ret0=dllcall("user32.dll","long","GetCursorPos","pstruct",pt0) return ret0 结束 本贴记录在:tc简单开发吧,精品区目录8,项目未归类。
8封装。用函数 封装struct。 8封装。用函数 封装struct。 先设定C99标准。 设定标准,有助于tc健康发展。 1、增加库文件(****.t文件): 右键“项目管理-**项目名字”。 添加,新建文件(N) 文件名: structAPI,位置: 使用默认的。 2、把自定义的结构体/API函数,封装到“structAPI.t”文件。 3、定义部分带0。封装部分带0。 带0的,表示这是形参,是定义部分。 不带0的,表示这是实参,是调用部分。 结构体,英文名是struct。 结构体是类和对象的东西。 什么是结构体? 把多种基本的数据类型,封装成复合的数据类型,这就是结构体。 函数,结构体,和类,都属于变量的数据类型的一种。 结构体有什么用处? 调用系统API时,经常要用到结构体。 脚本语言,是没有结构体的。tc使用数组 来构造的结构体。 用函数来封装结构体,使代码工整,使代码可读性更强。 在调用该函数时,楼主使用变通的办法:用一个新数组,来接收函数的返回值。这样,封装在函数内的结构体,就被继承过来。 ——————————————————————— 功能 pt0()//定义结构体。用下一行要封装的数组名,作为函数名。 var pt0 = 数组()//变量的作用域。pt0定义在函数内,是局部数组. pt0["x"] = 数组("long"=1,"value"=0) pt0["y"] = 数组("long"=1,"value"=0) return pt0//返回数组名。 结束 功能 执行() var pt = pt0()//调用封装函数。用新数组pt,继承结构体数组。 //在调用函数pt0()之后,pt0()的返回值,被新数组pt继承。这样在 执行()中,pt就是继承过来的结构体。 //新结构体pt,就可以作为参数使用了。 结束 ——————————————————————— ——————————————————————— 上面讲解繁多。 把注释去掉,代码量还是很简洁的。 功能 pt0() var pt0 = 数组() pt0["x"] = 数组("long"=1,"value"=0) pt0["y"] = 数组("long"=1,"value"=0) return pt0 结束 功能 执行() var pt = pt0()//调用封装函数。 //新结构体pt,就可以作为参数使用了。 结束 ——————————————————————— ——————————————————————— tc。对tc结构体的理解。 在C++中,结构体是一种新的数据类型。尤如tc的整型,浮点型,逻辑型,字符串型, 函数,是变量的数据类型。 结构体,是变量的数据类型。 类也理解为,变量的一种数据类型。 跟官方的信息确认。 var 座标 = array() 座标["x"] = array("long" = 1, "value" = 0) 座标["y"] = array("long" = 1, "value" = 0) while(1) dllcall("user32.dll", "long", "GetCursorPos", "pstruct", 座标) traceprint(座标["x"]["value"]) traceprint(座标["y"]["value"]) sleep(1000) end // "long" = **,是申请long类型的数组空间,用来储值。 "long" = 1,申请一个long类型的内存空间(4字节)? "long" = 2,申请一个long类型的内存空间(8字节)? "long" = 3,申请一个long类型的内存空间(12字节)? "value" = 0,这是 对数组元素的清零/ 赋初值? // 再问一例子。dllcall实例之气泡演示: //本示例首先 感谢 鬼玺 同学…… NOTIFYICONDATA["szTip"] = array("wchar"=128,"value"=tip) NOTIFYICONDATA["dwState"] = array("long"=1,"value"=0) NOTIFYICONDATA["dwStateMask"] = array("long"=1,"value"=0) NOTIFYICONDATA["szInfo"] = array("wchar"=256,"value"=content) NOTIFYICONDATA["uTimeoutAndVersion"] = array("long"=1,"value"=0) NOTIFYICONDATA["szInfoTitle"] = array("wchar"=64,"value"=title) NOTIFYICONDATA["dwInfoFlags"] = array("long"=1,"value"=0) tc帮助文档中讲到, "wchar"=128,"wchar"=256,"wchar"=64, 在结构体中出现wchar,一般都会被指定缓存长度大小 64字节.128字节.256字节. 这里是否理解为,申请64字节.128字节.256字节大小的内存空间。 ======================================================= ♡い波波: 18:51:38 在tc结构体里面,只有char/wchar类型可以申请多数组,其它类型的 都不允许。 像 var 座标 = array() 座标["x"] = array("long" = 100, "value" = 0) 座标["y"] = array("long" = 200, "value" = 0) 把long的个数写成100,200,它的内容还是只占四字节。不会占400,800字节。 这个在帮助文档中有说明。 ♡い波波: 18:52:26 座标["y"] = array("char" = 200, "value" = 0) "char" = 200, 这样写, 则会申请两百个字节空间 除非char以外的类型,都是预留没有做处理。 稳定。 :18:53:31 谢谢。除了char/ wchar,其它类型 不管标识符的数值, 是填100,200,还是填1000,2000,tc内部申请到的空间,都只是四字节。 本贴记录在:tc简单开发吧,精品区目录8,项目未归类。
8封装。把归类后的函数,封装到tc库 8封装。把归类后的函数,封装到tc库 1、把常用函数封装在tc库,实现函数的一次编写,多次调用。 程序的重用性。实现函数在多个项目的重用。 2、实现代码框架的构造。 商业辅助脚本,代码往往有几千行(6部件)。 把几千行代码,糊在1个“***界面.t”,乱七八糟的,那是不成熟的做法。 把6部件分别做成: 自动喊话.t,补红蓝.t,选怪杀怪.t,定点回位.t,组队离队.t,回城补给.t。 再在“***界面.t” 里面循环调用,这样框架清清楚楚,整整齐齐的,不容易出现错误。 3、tc库的作用,跟按键精灵.命令库的效果一样。 但tc库 能够复制多个副本,修改副本时不影响原件。按键精灵.命令库不能构建框架,不能复制副本。 基于这三点,用tc开发项目,比按键精灵更有优势。 ======================================================= tc库,就是一个 ***.t文件。 一般来说,主界面对应一个***.t文件,多个子界面 对应多个***.t文件。 但也可以新建不带界面的 ***.t文件。 . 在易语言中,主窗口对应一个“窗口程序集”,多个子窗口 对应多个“窗口程序集”。 . 在Delphi7中,窗口对应的东西叫单元。 不管tc库,窗口程序集,窗口单元,说的都是同一个东西。 // 在新项目中新建tc库,操作步骤很简单: 右键“项目管理-***项目名字” 添加,新建文件(N) 文件名: 输入文件名。 位置: 输入文件位置。 把它命名为:structAPI //意思是结构体&API. 点确实后,tc库全名是:“structAPI.t” // 在新项目中添加tc库,操作步骤也简单: 右键“项目管理-**项目名字” 添加,现有文件(E) 按实际位置,选择以前封装好的tc库。这样就能调用tc库里面的函数。 // 用同样的方法 可以封装: “字符串库.t” “大漠库.t” “内存库.t” “汇编库.t” 一次编写,多次调用。这可不是吹出来的。 学习易语言的程序集,VC++的程序集,同样可以用这方法 封装函数,构造代码框架。 使代码 一次编写,多次调用。 编程是懂一而懂百,触类旁通的。 本贴记录在:tc简单开发吧,精品区8,项目归类。
tc简单开发吧吧主竞选:NO.0001号候选人
声音类。怎么把电脑设置成静音 声音类。怎么把电脑设置成静音 第1步:按快捷键 :开始键+R键,打开运行窗口。 在运行窗口中,键入mmsys.cpl并确定,打开声音程序窗口。 注:这种方法和XP系统完全一样,另外,还可以直接打开WIN7 第2步:在打开的【声音】窗口,在播放选项中双击【扬声器】此项。 第3步:在新打开的【扬声器属性】程序窗口中单击【级别】选项卡,找到小喇叭按扭。 单击一下就是静音了,再一次单击就是 取消静音。 ======================================================= 稳定。 : 先使用 cmd("mmsys.cpl",false) 窗口查找(),窗口查找子窗口() 窗口发送消息(),配合窗口句柄,可以后台操作。 人生。 : 我的是笔记本,f1直接静音。再按一次恢复 键盘按键(173)
查询精易模块 子程序。 查询精易模块 子程序: 点击 最左侧的程序,模块引用表。 双击精易模块5.23,在新窗口查看类目录,类_识图 ======================================================= 精易子程序 子程序 图片_屏幕截图,字节集,公开 参数 :屏幕宽度 整数型 参数 :屏幕高度 整数型 参数 :图片位数 整数型 可空,这里支持4 824 32 默认是24位图! 子程序 图片_屏幕区域截图,字节集,公开 参数 :欲截取的左边,整数型 参数 :欲截取的顶边,整数型 参数 :欲截取的宽度,整数型 参数 :欲截取的高度,整数型 ’双头硬件盒子。上面两个子程序,从被控机截图后,把字节集 发送给主控机。 ======================================================= 子程序 取出位图数据,字节集,公开,返回位图文件数据(写到文件后就是. BMP图片) 类_识图 子程序名:找图_从字节集 在位图数据中 查找图片(返回找到的图片中心坐标,找不到返回-1坐标),BUG命令谨慎使用 返回值类型:精易坐标 参数<1>的名称为“范围图片”,类型为“字节集”。注明:默认为上次范围图片。 参数<2>的名称为“目标图片”,类型为“字节集”。注明:默认为上次目标图片。 ======================================================= ’双头硬件盒子。主控机接收到字节集,调用类函数 :找图_从字节集() 参数1,写从被控机传来的字节集。 参数2,写从取出位图数据() 得到的字节集。
查询精易模块 子程序。 查询精易模块 子程序: 点击 最左侧的程序,模块引用表。 . 双击精易模块5.23,在新窗口查看类目录,类_识图
cmd() 打开画图软件. cmd("mspaint", true)//打开画图软件.
鼠键类。按目标键就开始执行,按另一键就终止 鼠键类。按目标键就开始执行,按另一键就终止 BeiYuPolaris : 出来个人,帮我把这个问题解决了 就是 按下一个热键,会执行一系列的键盘鼠标操作。 然后在执行过程中按某个按键,就直接终止 按了热键,会执行一系列的键盘操作 我的意思是,比如说按E键,执行下面代码: 键盘按键(73) 等待(500) 键盘按键(75) 等待(500) 键盘按键(74) 然后在这个执行过程中,不管代码 运行到哪一行,按A键就直接停止执行,后面的操作就不出来了。 ======================================================= var hThread1, run1 var hThread2, run2, bool 功能 执行1() var 按键码 = 69 //69是E. while(run1) //主循环. var code=keywait() if(code == 按键码) traceprint("E键已经按一次。") bool = 线程获取状态(hThread2) if(bool == 0) run2 = 1 hThread2 = 线程开启("执行2", "") end 键盘按键(73) 等待(500) 键盘按键(75) 等待(500) 键盘按键(74) end // sleep(100) end //主循环结束. 结束 功能 执行2() var 按键码 = 65 //65是A. while(run2) //主循环. var code=keywait() if(code == 按键码) traceprint("A键已经按一次。") //结束线程1. run1 = 0 sleep(100) 线程关闭(hThread1) //重开线程1. run1 = 1 hThread1 = 线程开启("执行1", "") break //跳出主循环. 结束线程2. end sleep(100) end //主循环结束. 结束 功能 启动_热键() bool = 线程获取状态(hThread1) if(bool == 0) run1 = 1 hThread1 = 线程开启("执行1", "") end 结束 功能 终止_热键() run1 = 0 线程关闭(hThread1) run2 = 0 线程关闭(hThread2) 结束 ======================================================= 新建一个tc项目,F8,F9热键不要删除。 把上面代码,全部覆盖进去 F5调试。 F8启动脚本, 按E键,键盘按键 就出来了。 按A键,就停止了,还用怎测试??
鼠键类。按目标键就开始执行,按另一键就终止 新建一个tc项目,F8,F9热键不要删除。 把上面代码,全部覆盖进去 F5调试。 F8启动脚本, 按E键,键盘按键 就出来了。 按A键,就停止了,还用怎测试??
求助,TC7.0 怎么判断某个按键是一直按下的 求助,TC7.0 怎么判断某个按键是一直按下的 ahu435 : 我有个线程,需要判断某个按键是否是按下状态的,换种说法就是 比如F1按下不放 就循环执行一个线程,松开了就不执行线程了 求路过的好心人 帮出出主意,感谢 ======================================================= var hThread0, run0 var hThread1, run1 功能 执行0() var 按键码 = 112 while(run0) //主循环. var ret=GetAsyncKeyState(按键码) if(ret != 0) //主if开始. traceprint("F1已经按下。") //在这里加入,F1按下的代码. var bool = 线程获取状态(hThread1) if(bool == 0) run1 = 1 hThread1 = 线程开启("执行1", "") end while(ret != 0) sleep(50) ret=GetAsyncKeyState(按键码) end traceprint("F1已放开。") //在这里加入,F1放开的代码. run1 = 0 线程关闭(hThread1) end //主if结束. sleep(100) end //主循环结束. 结束 功能 执行1() while(run1) traceprint("线程1的代码。") sleep(100) end 结束 功能 启动_热键() var bool = 线程获取状态(hThread0) if(bool == 0) run0 = 1 hThread0 = 线程开启("执行0", "") end 结束 功能 终止_热键() run0 = 0 线程关闭(hThread0) 结束 //======================================================= //struct,api封装部分。 功能 GetAsyncKeyState(按键码0) return dllcall("user32.dll","long", "GetAsyncKeyState","long",按键码0) 结束
更新。如何做自动更新的脚本 如何做自动更新的脚本。 用界面做框架,主要功能 都写在dll里面。 每次开启直接检测本地版本号,与最新版本号 有更新 就自动下载 下载之后 覆盖原来dll 文件 系统com。文件对象 Scripting.FileSystemObject var hThread 功能 执行() var path = "C:\\dll\\CBT.dll" //文件必须存在. var fso = com("Scripting.FileSystemObject") var ver = fso.GetFileVersion(path) traceprint("文件版本号:" & ver) // var fn = fso.GetFile(path) traceprint("文件创建时间:" & fn.DateCreated) traceprint("文件最后访问时间:" & fn.DateLastAccessed) traceprint("文件最后修改时间:" & fn.DateLastModified) fn = null fso = null 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
时间间隔。做自动换号的脚本 时间间隔。做自动换号的脚本 耀眼之光 : @群主 我这样写不对劲吗 我要4个小时换号 为啥挂一会就换号了 功能 自动换号_判断时间() 如果(获取系统时间() - 刷怪时间 > ((编辑框获取文本("挂机时间") * 60) * 60) * 1000) //疲劳值,每隔四个小时换号 返回 1 结束 结束 ======================================================= //稳定。 : //使用时间间隔。你先用 时间秒 s 来测试。 var hThread 功能 执行() var 时间1, 时间2 时间1 = 获取系统时间() while(1) sleep(1000) 时间2 = 获取系统时间() var 时间差=时间间隔("s",时间1,时间2) //时间2 - 时间1 if(时间差 >= 40) traceprint("执行操作") break end end 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
控件类。账号自动登陆() 控件类。账号自动登陆() 界面控件_浏览框,用来获取_用户选择的路径。 文件对话框(),也有获取路径的功能. 首先,用AB抓抓获取"标题名", "类名", 再用句柄,判断目标窗口是否存在。 var hwnd=窗口查找("标题名", "类名") if(hwnd==0) traceprint("目标窗口未打开.") var path=浏览框获取文本("浏览框0") 进程打开(path) //打开登陆器. end
控件类。账号自动登陆() 控件类。账号自动登陆() 界面控件_浏览框,用来获取_用户选择的路径。 文件对话框,也有获取路径功能. var path=浏览框获取文本("浏览框0")
大漠.设置字库编号 大漠.设置字库编号 dm.SetDict() //对txt字库,进行编号. 返回值:整形数. 0:失败 1:成功 此函数,在全局初始化时调用一次即可,切换字库用UseDict var dm_ret dm_ret = dm.SetDict(0,"aa.txt") dm_ret = dm.SetDict(1,"bb.txt") dm_ret = dm.SetDict(2,"cc.txt") dm.UseDict(0) //用哪个编号的字库,进行文字识别。设置之后永久生效,除非再次设定. ss = dm.Ocr(0,0,800,600,"FFFFFF-000000",1.0) dm.UseDict(1) ss = dm.Ocr(0,0,800,600,"FFFFFF-000000",1.0)
大漠.设置全局路径() 大漠.设置全局路径() 大漠.设置全局路径(获取资源路径("rc:")) //把tc的资源路径,设置为大漠.全局路径. 然后 大漠.找图(,,, ,"tc.bmp", ,,) ======================================================= var path = 获取资源路径("rc:") dm0.SetPath(path) //把tc的资源路径,设置为 大漠.全局路径()
大漠插件的使用方法. 大漠插件的使用方法。 插件注册: 新建一个tc项目,点击IDE左上角__的"项目管理",右键"资源",插入资源(I),把dm.dll添加到资源目录。 注册插件("rc:dm.dll", 真) //一句代码就可以. 插件调用: var dm0 //定义全局变量,用来存放大漠对象。 这里使用dm0,其实用dm,dmdm,dm10也是可以的. dm0 = com("dm.dmsoft") //创造com口的大漠对象。执行这句代码之后,全局变量_dm0,就带有大漠类的全部属性. //"dm.dmsoft" 是什么意思? 懂编写COM接口DLL的人知道,dm是库名,dmsoft是在库中建立的类名 var 版本号 = dm0.ver() messagebox(版本号) dm0.MoveTo(30,30) sleep(30) dm0.RightClick() 游戏公司 在制作游戏时,如果使用DX软件 绘制的游戏,必须使用大漠/天使/乐玩的dx模式。 按键精灵/ tc简单开发 后台模式无效。 DX窗口的3D游戏,后台只接受dx端口的输入。包括dx图色,dx鼠标,dx键盘。 注册大漠之后,可以做找图,找色,识字,找字,,按鼠标,按键盘等操作。 var path = 获取资源路径("rc:") var dm_ret = dm0.SetPath(path) //把tc的资源路径,设置为 大漠.全局路径() 大漠找图。 点击IDE左上角__的"项目管理",右键"资源",插入资源(I),把脚本用到的东西,全部添加到资源目录。(例如 bmp图片,txt字库,第三方dll) var intx, inty, dm_ret dm_ret = dm0.FindPic(0, 0, 1024, 768, "tc.bmp", "000000", 0.9, 0, intx, inty) if(intx > 0 && inty > 0) dm0.MoveTo(intx, inty) sleep(50) dm0.LeftClick() end 大漠识字。 为每个txt字库设定编号。取值为0-9,大漠最多支持10个字库。 dm_ret = dm0.SetDict(0,"字库0.txt") dm_ret = dm0.SetDict(1,"字库1.txt") dm_ret = dm0.SetDict(2,"字库2.txt") dm_ret = dm0.SetDict(3,"字库3.txt") dm_ret = dm0.UseDict(0)//激活需要使用的字库。参数1是字库编号. var str = dm0.Ocr(0,0,1024,768,"9f2e3f-000000",1.0) messagebox(str) 大漠插件,拥有最方便,最强大的是窗口绑定功能,一键前台变后台。 绑定方法: var dm0, run 功能 执行() var hwnd0, dm_ret //局部变量. 注册插件("rc:dm.dll", 真) dm0 = com("dm.dmsoft") hwnd0 = dm0.GetMousePointWindow() //获取鼠标所在的窗口句柄. dm_ret = dm0.BindWindow(hwnd0,display,mouse,keypad,mode) //接着写代码,后台运行要绑定窗口. //有些窗口,需要先激活窗口再绑定(或者绑定以后再激活), //有些窗口,在绑定之后 需要 等待(2000),否则绑定无效。 run = 1 while(run) //主线程任务。 dx模式比较花费时间,代码和代码之间,至少要留有 sleep(10),否则操作无效。 end dm_ret = dm0.UnBindWindow()//解除绑定. 结束 //功能结束. ======================================================= 大漠插件下载: QQ群: ,群文件,大漠插件。 QQ群: ,群文件,大漠插件。
2,5路可以溅射. 1,6路冰瓜有啥用? 2,5路可以溅射. 2路溅射 1,2,3 5路溅射 4,5,6 就够用了.
两轮炮,4轮冰。 四大垫材:小蘑菇,阳光菇,花盘,胆小菇。 不够的,用核子补充下,用樱桃辣椒为一组补充下。 . 轨道理论 : 第一波炸, 第二波冰, 第三波冰, . 第四波炸, 第五波冰, 第六波冰, . 如此循环。 这是一个懒人阵,只要料理小丑、红眼,其它的气球、冰车、小怪可以无视。
tc简单开发 tc简单开发
找图。截图。 //找图。截图。 var hThread, run 功能 执行() while(run) var x,y,ret,序号 ret=findpic(0,0,500,500,"rc:40.bmp","101010",0.9,0,x,y) if(ret>=0) 序号 = 序号 + 1 ret=截图(0,0,500,500,"d:\\图\\" &序号&".bmp") end end 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) run = 1 hThread = 线程开启("执行", "") end 结束 功能 终止_热键() run = 0 //线程关闭(hThread) 结束
3334,两轮炮,4轮冰。 四大垫材:小蘑菇,阳光菇,花盘,胆小菇。
access2010视频教程 access2010视频教程
植吧。4轮冰_两轮炮。
大漠多线程,每个线程都要创建一个大漠对象。 大漠多线程,每个线程都要创建一个大漠对象。每个对象,得用不同的对象名。 所以最好用数组,来储存大漠对象。每个带大漠的子函数,都加个_子函数(id)。 这个id号,是数组下标。
大漠多线程,每个线程 都要创建一个大漠对象。 大漠多线程,每个线程 都要创建一个大漠对象。每个对象,得用不同的对象名。 所以最好用数组,来储存大漠对象。每个带大漠的子函数,都加个_子函数(id)
tc简单开发_教程群 tc简单开发_教程群 先学习.代码框架 : 大漠。单开单停,多开多停 多线程。单开单停,多开多停 再学习.编程四大法:流程控制,变量和数组,函数多线程,系统api。 这四个方法,在按键精灵,tc简单开发,易语言通用,,在C语言,C++,Python中同样通用
内存基址篇。 内存基址篇。 第一课 :位与字节 第二课 :变量与字节 第三课 :四大内存区间,动态分配内存 第四课 :自己编写一个,带基址,带偏移的小程序。 自己找基址,找偏移 你会造锁,就会解锁 你会造车,就会开车 明白造车的原理。 你能自己 造出一台车子来,再学开车。 这样你的技术,必定比那些只会开车 不会造车的人 要高明得多
植吧。机枪火树,必须用6列曾预伤怪群 植吧。机枪火树,必须用6列曾预伤怪群
植吧。玉米炮释放准星后,3.73秒落地轰炸 植吧。玉米炮释放准星后,3.73秒落地轰炸
植吧。寒冰菇放咖啡豆后,4秒开始冰冻 植吧。寒冰菇放咖啡豆后,4秒开始冰冻 放咖啡豆后,过2.98秒寒冰菇醒来,再过1秒冰冻生效。
编程。业余选手的误区。 编程。业余选手的误区。 我觉得吧,编程的目的是什么呢?当然是解决问题,方便(帮助)我们更好的做某件事。 比如说,我们发现Windows记事本不好用,功能少,然后就有人做出了Notepad++, gedit这些东西。 嗯。然后问题来了。很多人本末倒置了, “为了编程而编程” 比如说自己做一个很不顺手的记事本、浏览器、音乐播放器,等等, 我看到有的小伙伴的作品,从界面设计到功能都不如一些免费的现成的东西。 当然,你要说只是想写程序练手,我觉得没啥,挺好的,可是,有的朋友呢,非要去推广,还当成日常工具来用。 这样很不合适呢。 有这些功夫,为何不去想想,有哪些迫切需求、痛点,是可以用编程来改善的。
易语言。新手建议用易语言入门 易语言。新手建议用易语言入门 以前,我打算用VB入门,再转C。 后来发现,易语言是VB的中文版,比VB还好用。 易语言跟VB很像,但比VB找资源容易,决定用易语言转C。 稳定。 : 编程具有共通性。来来去去 都是那几样东西。 易语言那么多人学习,不是它容易,而是因为易语言是中文的。学习资源多,容易找。 不要贪恋易语言的模块。记得转C。 不忘初心,方得始终。
易语言,为什么易语言值得一学 过来人说说,为什么易语言值得一学 封隔的心 : 从小就喜欢编程,试过自学C,C++。C#。虽然自问很努力了,但不管看教程看书,每次坚持不了几小时就想死。因为完全听不懂。直到某一天发现了易语言。 记得教程第一课就是窗口程序,好像是红绿灯还是计算器。 第一回就成了,那兴奋的感觉现在还记得,然后一头扎进去很久很久,几乎看光了所有教程,上班时没事干就下载源码研究。 昨天买个新电脑,鬼使神差的装了个VS2015. 看了几个C语言和C#教程,惊讶的发现以前让人懵逼的理论,词汇。居然都能秒懂了。 一口气看了二十多集的理论视频才发现自己没疯,居然人没疯。还天杀的记了满满一本笔记。 易语言的教程对于基础理论介绍的不多,但在大量实际运用中让我不知不觉中领会了许多概念性的东西。 以前在易语言中常用到但不理解的,看了C语言视频后就会有一种“原来如此”的感觉。 我是个自学的野路子,不会什么高**术语。 简单的说看了一天视频我决定从头学习C#, 主要因为和易语言更相似,容易上手,而且在易语言里最常用变量,函数,运算符等等,看C#视频也能学会不少新知识。 坚持自学编程真的是不容易,如果没有易语言我想编程对我来说只是个梦想。对于自学者来说易语言是个好的起点,或许相比其他语言有些许不足和不便, 但它能给予自学新人持续自学,钻研的自信和动力。 仅已此文送给吧里正在学习的新人们。
外国人捧python,那是为了反微软的。 外国人捧python,那是为了反微软的。 就像c#,完全和java一样的,就是java好,就是不给c# 写框架。python也是国外程序反微软的又一利器, python比vb写的代码少,就吹python厉害了。python,java,有多好其实不重要,反微软才是目的。
新手回复。做调试输出 新手回复。做调试输出 关于未知领域,每个结果都做调试输出 用断点调试 也可行。 在VS领域,大神们都是做_断点调试,再在左下角的“输出框”,查看变量名,变量类型,变量值。 F9对目标行_下断点。 F8单步调试。 F7过程调试。 调试结果,不是当前行的, 调试结果,是上一行的, 这是为什么啊?? CRazY :因为断点还没执行 断点是在这一句,执行前停下
易语言。监视热键 ♋式😈 楼主:在窗口外按下tab键和松开,分别执行事件,怎么写啊? 监视热键 ♋式😈 楼主:监视热键我知道按下执行子程序,按住和松开怎么写啊?
文件类。文件重命名() 文件类。文件重命名() 功能 执行() var ret //文件重命名(),可以修改扩展名. ret = 文件重命名("d:\\test.txt", "d:\\test.vbs") traceprint(ret) sleep(6000) //6秒之后,把文件扩展名,修改回来. ret = 文件重命名("d:\\test.vbs", "d:\\test.txt") traceprint(ret) 结束
新手。找不到图。 新手。找不到图。 新手刚刚接触,希望可以多多学习,代码如下,生成之后,没有反应。。不知道哪里出问题了 变量 线程ID //从这里开始执行 功能 执行() //从这里开始你的代码 等待(2000) 变量 x=-1,y=-1 变量 ret=找图(0,0,2000,2000,"rc:336.bmp","000000",1,0,x,y) 如果(ret>=0) 鼠标移动(x,y) 鼠标左键单击() 结束 结束 //启动_热键操作 功能 启动_热键() 线程ID=线程开启("执行","") 结束 //终止热键操作 功能 终止_热键() 线程关闭(线程ID) 结束 ======================================================= 代码已经生效。 但是代码只执行一次,图片还未出现,代码已经结束。加个循环就好了 while(1) //要循环的代码. end 用工具,AB抓抓 上面的图色助手.截图。 图片要添加到资源目录。你会添加??? 在左上角_项目管理,右键点击 资源,添加 var hThread 功能 执行() 变量 x, y, ret while(1) ret=找图(0,0,2000,2000,"rc:336.bmp","000000",1,0,x,y) traceprint(ret) 如果(ret>=0) traceprint("已经找到图片") 鼠标移动(x,y) 鼠标左键单击() 否则 traceprint("未找到") 结束 等待(200) end 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
VS2010。中文代码 VS2010和以上版本,可以用中文写代码。
邮件类。电脑开机,怎么发送邮件 邮件类。电脑开机,怎么发送邮件 工作电脑不想让别人用,怎么设计开机自动发邮件到指定邮箱,求大神指定,在网上找了很多源码都不能用 乐易论坛 : 写启动项, 最基础的smtp 高级点的post ZJXEEE : 开机启动,然后smtp发送邮件 (详细百度)
进制类。十六进制怎么转 十进制 进制类。十六进制怎么转 十进制 var ret = 字符串格式化("字符:%s 浮点型:%f 十进制:%d十六进制:%x ascii码:%c","aaf",20.5,50,255,65) messagebox(ret)
首页
1
2
3
4
5
下一页