剑仙十号
外挂工程师
关注数: 19
粉丝数: 442
发帖数: 3,966
关注贴吧数: 96
字符串类。搜索txt中,目标文字的行数 字符串类。搜索txt中,目标文字的行数 按键精灵,能搜索txt的文字,在第几行? 不是要读出第几行的问题,而是搜索某段字在第几行 稳定。 : var text = 文件读取内容(路径) var 目标文字 = "wtigdhjg" 把文本读到变量text,然后分割到数组。 在for循环中,用字符串查找(arr[i]), 目标文字) ,逐行对比数组。 对比成功后,记录数组下标。这个下标i就是行数。
数组类。数组指定位置删除() 数组类。数组指定位置删除() 数组类。数组指定键值删除() 热键F1_帮助文档, 3.windows平台, 1.api详解, 15.数组 var hThread 功能 执行() //var a = 数组("s1" = "a1", "s2" = "a2", "s3" = "a3", "s4" = "a4") var a = 数组("a1", "a2", "a3", "a4") 数组指定位置删除(a, 0) var len = 数组大小(a) traceprint(len) for(var i = 0; i < len; i++) var value, key 数组获取元素(a, i, value, key) traceprint("数组指定键值删除 " & i & " " & key & " " & value) end // // a = 数组("s1" = "a1", "s2" = "a2", "s3" = "a3", "s4" = "a4") 数组指定键值删除(a, "s2") len = 数组大小(a) traceprint(len) for(var i = 0; i < len; i++) var value, key 数组获取元素(a, i, value, key) traceprint("数组指定键值删除 " & i & " " & key & " " & value) end 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
数组类。数组值查找() 数组类。数组值查找() 数组类。数组键查找() 热键F1_帮助文档, 3.windows平台, 1.api详解, 15.数组 var hThread 功能 执行() //var a = array("s1" = "a1", "s2" = "a2", "s3" = "a3", "s4" = "a4") var a = array("a1", "a2", "a3", "a4") var key = 数组值查找(a, "a4", 1) //查找指定数值,在数值中的位置. traceprint("数组值查找:" & key) // // a = array("s1" = "a1", "s2" = "a2", "s3" = "a3", "s4" = "a4") key = 数组键查找(a, "s4") //查找指定key,在数值中的位置. traceprint("数组键查找:" & key) 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
数组类。数组追加元素() 数组类。数组追加元素() 数组类。数组删除末尾元素() 热键F1_帮助文档, 3.windows平台, 1.api详解, 15.数组 var hThread 功能 执行() var b = array("a", "b", "c", "d") 数组追加元素(b, "e") traceprint(b[4]) //索引数组. var a = array("k1" = "a", "k2" = "b", "k3" = "c", "k4" = "d") 数组追加元素(a, "9999", "k5") traceprint(a["k5"]) //关联数组. // // var key, value, ret var aa = array("a", "b", "c", "d") 数组删除末尾元素(aa, value, key) traceprint("删除前,末尾元素value:" & value & " key:" & key) traceprint(aa[4]) //调试输出为"" 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
窗口类。怎样做窗口切换的脚本 窗口类。怎样做窗口切换的脚本 sjmjieke007 : 刚刚学习用,切换窗口用的软件带的抓抓,抓出一串数字来 编写程序这串数字 用着也没问题,但是下次重新打开窗口之后,这串数字就变化了 . 有一劳永逸的办法吗?有其他方法切换窗口吗? 我用的方法是百度搜索:“按键精灵切换窗口”,百度经验的那种方法 窗口激活(hwnd) http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fjingyan.baidu.com%2Farticle%2Fc45ad29c06a805051753e2a6.html&urlrefer=9740c4c87309fc0e5e506882e116bb81 但是每次重新打开窗口,上次编程的2个窗口数字串还要重新抓取,好麻烦啊。怎么解决啊? 不知道别的窗口怎么样,我变成的某个安卓模拟器的窗口反正是重启之后就变化了数字了。最好不要使用手动编程鼠标移动点击,以及alt+tab这种不稳定的方法啦 我纯新手,自己研究根本找不到方向啊,教程这种方法只能适用于这个窗口一直开着,我也没办法啊,只能再来一次,而且切换次数很多,要改很麻烦,软件里也没找到像word一样的替换功能 尘埃 :句柄是变化的。 sjmjieke007 :对啊,我都说了重新设置了,自然发现是变化的了,所以说有什么别的思路来切换窗口吗? ======================================================= 稳定。:窗口句柄的学习。 操作一个窗口句柄,就相当于.操作这个后台窗口。一个窗口打开后,系统对它分配临时编号,这个临时编号叫句柄。窗口关闭后,窗口句柄会被收回。 例如 : 到某宝参加团购,店铺会给每个顾客,分配一个临时编号,用来标识每个顾客.交易过程。 完成交易,双方评价后,临时编号就被收回,用作下次使用。 句柄的作用,类似于团购编号。 var hwnd = 窗口查找("标题名", "类名") //就可以一劳永逸获取句柄. 窗口激活(hwnd) //标题名, 类名, 打开TC自带的"AB抓抓"获取. 游戏公司用DX绘图软件,制作出来的游戏, 必须使用大漠/天使插件/乐玩插件 的DX绑定模式。
窗口类。窗口句柄,窗口ID 窗口类。窗口句柄,窗口ID 句柄,英文名是handle。 一个程序写好后,每次运行这个程序,系统都会分配一个4G大的,虚拟的空间,给这个进程。 并分配进程ID,线程ID,窗口ID各一个, 进程句柄,线程句柄,窗口句柄各一个, 以方便对程序进行管理操作。 ======================================================= 句柄的分类:Hwnd,hProcess和hThread。 窗口句柄 Handle-window,简写Hwnd。 进程句柄 handle-Proccess,简写hProcess。 线程句柄 handle-Thread,简写hThread。 ======================================================= ID的分类:WindowsID,ProcessID和ThreadID。 窗口ID,为WindowsID。 进程ID,为ProcessID。 线程ID,为ThreadID。 窗口ID,是这个窗口唯一的标识。通过窗口ID,可以获得窗口句柄。 // // ID和句柄的区别: ID是程序的一种属性,就像每人的面孔一样。 不去整形(不重新.编译生成),ID是不会变的。 句柄可以变化。 每次打开程序,编号就不一样。就像每次进入新的学校,学号就不一样。 句柄就是一个临时的编号,系统随机分配的编号。 . 游戏公司用DX绘图软件,制作出来的游戏, 必须使用大漠/天使插件/乐玩插件 的DX绑定模式。
位运算。获取电脑盘符号 var hThread 功能 执行() var ret = 位运算_初始化() var dd = GetLogicalDrives() traceprint(dd) for(var i = 0; i < 27; i++) ret = 数学求幂(2, i) var b = 位与(ret, dd) if(b > 0) var pf = 字符串格式化("%c", (65 + i)) traceprint(pf) end end 结束 功能 GetLogicalDrives() return dllcall("kernel32.dll", "long", "GetLogicalDrives") 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束 ========================================================== var dd = GetLogicalDrives(),dd(124)表示电脑盘符。 这是一个10进制数,盘符记录在.二进制数里面。 打开电脑系统自带的计算器,查看,科学型 点击十进制,输入124,点击二进制,显示为1111100 这个二进制数 是电脑盘符,从左到右为:位6 位5 位4 位3 位2 位1 位0 位6 位5 位4 位3 位2 位1 位0 G盘 F盘 E盘 D盘 C盘 B盘 A盘 二进制位数为1,代表目标盘存在。二进制位数为0,代表目标盘不存在。 电脑有26个盘符,就有26个二进制位。 所以用for遍历一次,每轮都做位运算(位与),就能输出所有存在的盘符。
新手回复。代码框架 新手回复。代码框架 把代码做成N个框架, 每个框架都归类到 一个.t文件 1、新建 **.t 源文件 主线程.t 临护线程.t 找怪打怪.t 补红补蓝.t 定点回位.t 回城补给.t 在TC左上角,右键_项目管理-**,添加, 新建文件/ 现有文件,选择后点击确定。 这样,一个**.t文件 就新建好了 再往 **.t 里面封装变量,封装函数。 **.t源文件,类似ajjl的命令库,一次编写,多次调用。 **.t源文件,可以导出副本,修改副本不影响原件。这个功能比较优秀。
窗口类。获取具有输入焦点的窗口句柄 窗口类。获取具有输入焦点的窗口句柄 var hthread 功能 执行() //由于GetFocus()函数,只能获取自身进程的控件句柄. //所以调用AttachThreadInput()函数,把代码线程,附加到目标进程空间. var hwnd顶层 = GetForegroundWindow() //获得顶层窗口句柄. var ProcessId //根据顶层窗口句柄,获取顶层窗口的线程ID var ForeThreadId = GetWindowThreadProcessId(hwnd顶层, ProcessId) var SelfThreadId = GetCurrentThreadId() traceprint("ProcessId:" & ProcessId) // var bool = AttachThreadInput(ForeThreadId, SelfThreadId, 1) //附加线程 //讲白话点,把当前线程附加到目标进程空间。 var hwnd焦点 = GetFocus() //获取具有输入焦点的窗口句柄 bool = AttachThreadInput(ForeThreadId, SelfThreadId, 0) //取消附加线程 // //对记事本输出信息,使用 窗口发送字符(hwnd焦点, 13) //窗口发送按键(hwnd焦点, 13) 这个只发送按键,不会显示文本. 窗口发送字符串(hwnd焦点, "ProcessId:" & ProcessId & "\r\n") 窗口发送字符串(hwnd焦点, "hwnd焦点:" & hwnd焦点 & "\r\n") 结束 功能 启动_热键() var bool = 线程获取状态(hthread) if(bool == 0) hthread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hthread) 结束 功能 GetForegroundWindow() //获得顶层窗口句柄. return dllcall("User32.dll", "long", "GetForegroundWindow") 结束 功能 GetWindowThreadProcessId(hwnd顶层, &ProcessId) //根据顶层窗口句柄,获取顶层窗口的线程ID return dllcall("User32.dll", "long", "GetWindowThreadProcessId", "long", hwnd顶层, "plong", ProcessId) 结束 功能 GetCurrentThreadId() //获取本身的线程ID return dllcall("kernel32.dll", "long", "GetCurrentThreadId") 结束 // 功能 AttachThreadInput(ForeThreadId, SelfThreadId, bool0) //附加线程 //取消附加线程 return dllcall("User32.dll", "long", "AttachThreadInput", "long", ForeThreadId, "long", SelfThreadId, "long", bool0) 结束 功能 GetFocus() //获取具有输入焦点的窗口句柄() return dllcall("User32.dll", "long", "GetFocus") 结束 功能 GetActiveWindow() //获取活动窗口句柄() return dllcall("user32.dll", "long", "GetActiveWindow") 结束
植吧。3184
文件加密() fileencrypt 文件加密() fileencrypt 函数描述: 加密文件 函数原型: fileencrypt(srcfile,dstfile,key) 文件加密(源文件路径,加密后文件路径,密钥) 函数参数: srcfile:源文件路径 dstfile:加密后文件路径 key:密钥 返回值: 文件加密是否成功 var b = 文件加密("d:/sdcard/123","d:/sdcard/123d","key") 消息框(b)
文件解密() filedecrypt 文件解密() filedecrypt 函数描述: 解密文件 函数原型: filedecrypt(srcfile,dstfile,key) 文件解密(加密过的文件,解密后的文件,密钥) 函数参数: srcfile:被加密过的文件路径 dstfile:解密后的文件路径 key:密钥 返回值: 文件解密是否成功 中文示例: var b = 文件解密("d:/sdcard/123","d:/sdcard/123d","key") 消息框(b)
枚举窗口() Notepad后台. 枚举窗口() Notepad后台. 参数1: 窗口名,类名,进程名,父句柄等. 参数2: 0,根据窗口名,1,根据类名,2,根据进程名,3,根据父句柄. 返回值: 窗口句柄,字符串型. 如果枚举到多个,用"|"做分隔. 脚本例子: var strhwnd = 枚举窗口("记事本", 0) var hwnd = 转整型(strhwnd) //枚举窗口()作用等同于 窗口查找() //var hwnd = 窗口查找("无标题 - 记事本", "Notepad") var hwndex = 窗口查找子窗口(hwnd, "", "Edit") 窗口发送字符(hwndex, 81) 窗口发送字符(hwndex, 13)
数学求幂() 数学求幂() var hThread 功能 执行() var a = 数学求幂(2, 0) //任何数的0次幂,计算结果都是1. traceprint(a) a = 数学求幂(2, 1) traceprint(a) 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
位与。获取电脑盘符号 位与。获取电脑盘符号 var hThread 功能 执行() var ret = 位运算_初始化() var dd = GetLogicalDrives() traceprint(dd) for(var i = 0; i < 27; i++) ret = 数学求幂(2, i) var bool = 位与(ret, dd) if(bool > 0) var 盘符 = 字符串格式化("%c", (65 + i)) traceprint(盘符) end end 结束 功能 GetLogicalDrives() return dllcall("kernel32.dll", "long", "GetLogicalDrives") 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
内存搜索() 子程序名:内存搜索, 搜索进程内 字节集存放的内存地址,返回结果是16进制文本型的,失败返回””. 搜索范围是从400000 -8000000 返回值类型:文本型 参数<1>的名称为“进程句柄”, 类型为“整数型” 参数<2>的名称为“机器码”,类型为为“文本型”。注明:形如“11 0D”的16进制字节集文本。
新手回复。做代码框架 新手回复。做代码框架 把代码做成N个框架, 每个框架归类到 一个.t文件 在TC左上角,右键_项目管理-**,添加, 新建文件/ 现有文 件,选择后点击确定。 这样,一个**.t文件 就新建好了 再往 **.t 里面封装变量,封装函数。 *.t源文件,类似ajjl的命令库,一次编写,多次调用。*.t 源文件可以导出副本,修改副本不影响原件。 代码框架例子: 主线程.t 临护线程.t 找怪打怪.t 补红补蓝.t 定点回位.t 回城补给.t
窗口类。请教关于窗口切换的问题,新人问题 窗口类。请教关于窗口切换的问题,新人问题 sjmjieke007 楼主: 刚刚学习用,切换窗口用的软件带的抓抓,抓出一串数字来 编写程序这串数字 用着也没问题,但是下次重新打开窗口之后,这串数字就变化了 . 有一劳永逸的办法吗?有其他方法切换窗口吗? 我用的方法是百度搜索:“按键精灵切换窗口”,百度经验的那种方法 窗口激活(hwnd) http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fjingyan.baidu.com%2Farticle%2Fc45ad29c06a805051753e2a6.html+&urlrefer=544424a17ab36b56c2115434309a8ef0 但是每次重新打开窗口,上次编程的2个窗口数字串还要重新抓取,好麻烦啊 怎么解决啊?#(惊哭) 不知道别的窗口怎么样,我变成的某个安卓模拟器的窗口反正是重启之后就变化了数字了。最好不要使用手动编程鼠标移动点击,以及alt+tab这种不稳定的方法啦 我纯新手,自己研究根本找不到方向啊,教程这种方法只能适用于这个窗口一直开着,我也没办法啊,只能再来一次,而且切换次数很多,要改很麻烦,软件里也没找到像word一样的替换功能 尘埃 :句柄是变化的。 sjmjieke007 楼主:对啊,我都说了重新设置了,自然发现是变化的了,所以说有什么别的思路来切换窗口吗? ======================================================= 窗口句柄的学习。 操作一个窗口句柄,就相当于.操作这个后台窗口。一个窗口打开后,系统对它分配临时编号,这个临时编号叫句柄。窗口关闭后,窗口句柄会被收回。 例如 : 到某宝参加团购,店铺会给每个顾客,分配一个临时编号,用来标识每个顾客.交易过程。 完成交易,双方评价后,临时编号就被收回,用作下次使用。 句柄类似于团购编号。 使用 var hwnd = 窗口查找("标题名", "类名") //就可以一劳永逸获取句柄. 窗口激活(hwnd) //标题名, 类名, 打开TC自带的"AB抓抓"获取.
系统com。vbs msgBox("hello world") Dim name Name=InputBox("请输入您的网吧名称","名称") MsgBox(name)
窗口类。请教关于窗口切换的问题,新人问题 窗口类。请教关于窗口切换的问题,新人问题 sjmjieke007 楼主: 刚刚学习用,切换窗口用的软件带的抓抓,抓出一串数字来 编写程序这串数字 用着也没问题,但是下次重新打开窗口之后,这串数字就变化了 . 有一劳永逸的办法吗?有其他方法切换窗口吗? 我用的方法是百度搜索:“按键精灵切换窗口”,百度经验的那种方法 窗口激活(hwnd) http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fjingyan.baidu.com%2Farticle%2Fc45ad29c06a805051753e2a6.html+&urlrefer=544424a17ab36b56c2115434309a8ef0 但是每次重新打开窗口,上次编程的2个窗口数字串还要重新抓取,好麻烦啊 怎么解决啊?#(惊哭) 不知道别的窗口怎么样,我变成的某个安卓模拟器的窗口反正是重启之后就变化了数字了。最好不要使用手 动编程鼠标移动点击,以及alt+tab这种不稳定的方法啦 我纯新手,自己研究根本找不到方向啊,教程这种方法只能适用于这个窗口一直开着,我也没办法啊,只能 再来一次,而且切换次数很多,要改很麻烦,软件里也没找到像word一样的替换功能 尘埃 :句柄是变化的。 sjmjieke007 楼主:对啊,我都说了重新设置了,自然发现是变化的了,所以说有什么别的思路来切换窗口 吗? ======================================================= 窗口句柄的学习。 操作一个窗口句柄,就相当于.操作这个后台窗口。一个窗口打开后,系统对它分配临时编号,这个临时编号 叫句柄。窗口关闭后,窗口句柄会被收回。 例如 : 到某宝参加团购,店铺会给每个顾客,分配一个临时编号,用来标识每个顾客.交易过程。 完成交易,双方评价后,临时编号就被收回,用作下次使用。 句柄类似于团购编号。 使用 var hwnd = 窗口查找("标题名", "类名") //就可以一劳永逸获取句柄. 窗口激活(hwnd) //标题名, 类名, 打开TC自带的"AB抓抓"获取.
系统com。文件对象 系统com。文件对象 系统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) 结束
系统com。com接口类和对象 系统com。com接口类和对象 作者编写的com口类。 例如:大漠com,天使com,懒人办公com。 这些注册插件,创造对象,调用对象,释放对象的方法, 大伙都非常熟悉,就不做介绍了。 系统自带的com组件1。这些是微软那帮人写的。 vbs的com口类有6个: vbs Scripting.FileSystemObject //文件对象。 vbs WScript.Shell //注册表对象。 vbs regExp //正则对象。 vbs Dictionary //字典对象,相当于一个2维数组。 Wmi对象:XP 和以上版本系统 都带着。 远程控制电脑,获得硬盘序列号等等 硬件有关的信息。 查询网络状态,想知道机器内存多大,找它就对了。 IE对象:没错,就是操作网页ie的。例子: 功能 执行() 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 结束 ====================================================== 系统自带的com组件 Word.Application Excel.Application 这也是微软那帮子人写的。懒人办公插件,很多函数都是调用这2个com,进行二次开发。 例子: var word对象 = 插件("Word.Application") var excel对象 = 插件("Word.Application") 这些com口的组件,没有做帮忙文档。 不像大漠插件,天使插件,懒人插件一样,写有帮助文档。 要使用系统com口组件,百度搜索: vbs Scripting.FileSystemObject Word.Application Excel.Application 创建com口对象,怎样操作? var 对象名 = com("库名字.类名字") 释放com口对象,怎样操作? fso对象 = null word对象 = null excel对象 = null 大漠的对象数组,需要先null在删除吗?? 不需要,大漠自带有释放命令。 学懂这个,读者使用易语言,Delphi,C++,也能编写一个com组件, 或参考天使插件的源代码,仿写一个大漠插件。
大漠对象。代码智能提示 大漠对象。代码智能提示 新手 : 大漠注册成功了。 然后敲代码的时候,不会自动显示智能提示。 比如输入命令: var dm = com("dm.dmsoft") dm. 后面是不是应该自动显示.智能提示? 稳定。 : //把dm.dll 添加到左上角的资源目录。也就是rc:文件夹 //TC资源目录,类似于ajjl的附件. var ret = 注册插件("rc:dm.dll", 真) //注册到 系统注册表. 大漠插件,头次注册到电脑后, 关闭TC。 重新打开TC后,大漠对象才有智能提示。
大漠。对记事本后台截图 大漠。对记事本后台截图 cmd("Notepad.exe", 真) sleep(1000) //可以往里面写入一些文字. var dm = com("dm.dmsoft") var ver = dm.Ver() var hwnd = 窗口查找("", "Notepad") var hwndex = 窗口查找子窗口(hwnd, "", "Edit") var dm_ret = dm.BindWindow(hwndex, "gdi", "normal", "normal", 0) traceprint(dm_ret) dm_ret = dm.Capture(0, 0, 50, 50, "c:\\大漠截图.bmp") dm.UnBindWindow()
大漠。设置字库序号 大漠。设置字库序号 对txt文件设置序号. dm.SetDict() 返回值:整形数. 0:失败 1:成功 此函数,在全局初始化时调用一次即可,切换字库用UseDict var dm_ret dm_ret = dm.SetDict(0,"test0.txt") dm_ret = dm.SetDict(1,"test1.txt") dm_ret = dm.SetDict(2,"test2.txt") dm.UseDict(0) 使用哪个字库.对文字识别(参数1:0-9) 设置之后永久生效,除非再次设定. dm_ret = dm.UseDict(0) ss = dm.Ocr(0,0,800,600,"FFFFFF-000000",1.0) dm_ret = dm.UseDict(1) ss = dm.Ocr(0,0,800,600,"FFFFFF-000000",1.0)
消息过程。A窗口对B窗口的通讯。 消息过程。A窗口对B窗口的通讯。 新手 : 求问,我用A窗口发给B窗口,窗口最大化消息,他可以最大化。 然后我在B窗口消息路由,让他接到到这个消息以后执行线程开启一个功能。这个过程里有什么地方发生了错误? 稳定。 : 你要用代码,实现一件什么事 用一个窗口控制另一个窗口 这样来实现多开,避免重复工作。 . 不然我一个窗口和代码要重复10次,但是又不能直接多次打开单开,因为要统一控制 两个窗口,都是你用TC写的? 还是其它进程的窗口 都是用TC A窗口 代码: var hwnd = 窗口查找("B窗口") var 消息id = 123456 //随便填数字. var w参数 = 170 var l参数 = 180 窗口发送消息(hwnd, 消息id, w参数, l参数) B窗口 代码: 功能 B窗口_消息过程(消息id, w参数, l参数) traceprint(消息id) if(消息id == 123456) traceprint(w参数) traceprint(l参数) end 返回 假 结束 新手 : 窗口消息过程中,不能加等待是不是?等待(1000, 假) 也不行么 稳定。 : 消息过程是ui界面的东西,会卡住ui界面.
窗口发送消息(窗口句柄,消息id,w参数,l参数) 窗口发送消息(窗口句柄,消息id,w参数,l参数) 函数名: windowsendmessage 窗口发送消息 函数描述: 将指定的消息发送到一个窗口,同win32api 里面的SendMessage等同的效果(暂时还不支持结构体 ) 函数原型: windowsendmessage(hwnd,msg,wparam,lparam) 窗口发送消息(窗口句柄,消息id,w参数,l参数) 函数参数: hwnd: 窗口句柄值,可以通过找到窗口、顶层窗口句柄等获取句柄的函数得到 msg:指定被发送的消息,必须为整型 wparam:指定附加的消息特定信息,必须为整型。 lparam:指定附加的消息特定信息,必须为整型。 返回值: 根据消息的不同,返回值不一样 中文示例: var hwnd = 窗口获取自我句柄() 窗口发送消息(hwnd,274,61488,0)//向TC自身窗口,发送最大化的消息 A窗口对B窗口的通讯。 ======================================= A窗口代码: var hwnd = 窗口查找("B窗口") var 消息id = 433286131 var w参数 = 170 var l参数 = 180 窗口发送消息(hwnd,消息id,w参数,l参数) 消息id 的设置,参考F1_帮助文档,windows平台, 9.附录, 常用windows消息大全 例如: 系统命令(WM_SYSCOMMAND) 274 #112 用户选择关闭, 最小化, 最大化,窗口会接收到这个消息 关闭窗口(WM_CLOSE) 16 #10 向窗口发送一个关闭窗口的消息 最小化(SC_MINIMIZE) 61472 #F020 窗口最小化 最大化(SC_MAXIMIZE) 61488 #F030 窗口最大化 ======================================= B窗口代码: //消息过程,对主窗口有效。消息过程参数1,要用到消息id 的设置. //参考F1_帮助文档,windows平台, 9.附录, 常用windows消息大全 功能 B窗口_消息过程(消息, w参数, l参数) traceprint(消息) //traceprint(w参数) //traceprint(l参数) 结束 ======================================= B窗口代码: //消息路由,对窗口控件有效。消息路由.参数2,要用到消息id 的设置. //参考F1_帮助文档,windows平台, 9.附录, 常用windows消息大全 功能 B窗口_消息路由(句柄, 消息, w参数, l参数, 时间, x坐标, y坐标) traceprint(消息) //traceprint(w参数) //traceprint(l参数) //句柄, 是窗口控件的句柄. 返回 假 结束
窗口类。编辑框日志。用窗口发送消息(),使滚动条下滚 窗口类。编辑框日志。用窗口发送消息(),使滚动条下滚 Mo、帮、车... : 请问一下大神,,如何使用 “窗口发送消息(窗口句柄,消息id,w参数,l参数) ” 里面的消息id、w参数和l参数,怎么填呢? 言术 : 窗口发送消息(窗口句柄,消息id,w参数,l参数) . 窗口句柄:用来确定你想操作的窗口。编辑框是一种控件窗口。 消息id:消息类型,想做什么类型的事。 比如垂直滚动条,它的宏定义是WM_VSCROLL,也就是十进制数字277。 . 消息id 的设置,参考F1_帮助文档,windows平台, 9.附录, 常用windows消息大全 w参数:具体做什么事。 比如滚到底部,它的宏定义是SB_BOTTOM,也就是十进制数字7。 l参数:指定为标准的窗口滚动条,所以设置为0。 ======================================================= fa7865211 : 用编辑框显示日志,多行的时候 垂直滚动条不会自动下滚,只会返回到第一行。请问怎样让滚动条一直向下。 言术 : var texe = texe & "最新内容" & "\r\n" 编辑框设置文本("编辑框0", text) var hwnd = 控件获取句柄("编辑框0") 窗口发送消息(hwnd, 277, 7, 0)
漏写分号,或者大括号},或者写成全角分号,编译器提示error C2144 漏写分号,或者大括号},或者写成全角分号,编译器提示error C2144 进化中 : 我在用VS2010写一个程序时,编译之后发生了以下错误: //-------------------------------------------------------- d:\program files\vs2010\vc\include\codeanalysis\sourceannotations.h(29): error C2144: 语法错误:“__w64 unsigned int”的前面应有“;” //-------------------------------------------------------- 标明位置在SourceAnnotations.h内: //-------------------------------------------------------- #ifndef _SIZE_T_DEFINED #ifdef _WIN64 typedef unsigned __int64 size_t; #else typedef _W64 unsigned int size_t;//错误指向处 #endif #define _SIZE_T_DEFINED #endif //-------------------------------------------------------- 烦请各位给看看,这到底是什么原因?我的头文件是这么写的: //-------------------------------------------------------- #ifndef HEADER_PPIONT #define HEADER_PPIONT class PPiont { double x,y; public: void set(double x, double y); //设置坐标 double xOffset(); //返回直角坐标分量x double yOffset(); //返回直角坐标分量y double angle(); //返回极坐标分量相位 double radius(); //返回极坐标分量幅值 };//这个分号写成全角的了 #endif //-------------------------------------------------------- 1楼 lm_whales : 你自己的代码漏写分号";" 或者大括号"}",或者写成全角分号; 然后#include<....> 编译器在编译头文件时,发现漏写了分号,于是定位到系统头文件里面了! 2楼 plum2003 : 这是直接从IDE里拷贝出来的代码? 很明显,类名后面的分号写成全角的了.. //----------------------------------------- //-------------------------------------------------------- #ifndef HEADER_PPIONT #define HEADER_PPIONT class PPiont { double x,y; public: void set(double x, double y); //设置坐标 double xOffset(); //返回直角坐标分量x double yOffset(); //返回直角坐标分量y double angle(); //返回极坐标分量相位 double radius(); //返回极坐标分量幅值 };//这个分号写成全角的了 #endif //-------------------------------------------------------- 3楼 anti-child : 引用 1 楼 lm_whales 的回复: 你自己的代码漏写了分号“;”或者大括号"}"; . 可是为什么定位到这一句 typedef _W64 unsigned int size_t; 4楼 赵4老师 : 我遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。 titer1 : 这个 看起来 叫排除技能啊! 进化中 : 谢谢一楼和二楼,问题已经解决。 对于三楼,我也有同样的问题,我的理解是可能系统找不到“;”时 就以为是头文件的定义发生错误,因此找到了SourceAnnotations.h。但不知道具体原因是不是这样 lm_whales : 编译器发现没有分号,会继续查找,直到找到分号。 因为类型定义可以附带定义变量; 比如 struct point2d { int x,y; } //这个位置少写分号,并不是错误 lefttop ={10,20}; //连这个分号也没有写才是错误! 所以就把错误定位到,头文件的第一个分号前面了。
窗口获取自我句柄() 函数名: windowgetmyhwnd 窗口获取自我句柄 函数描述: 获取TC界面自身句柄(只能获取主界面的) 函数原型: windowgetmyhwnd() 窗口获取自我句柄() 函数参数: 无 返回值: 返回程序自身句柄 中文示例: var hwnd = 窗口获取自我句柄()
窗口获取自我句柄() 函数名: windowgetmyhwnd 窗口获取自我句柄 函数描述: 获取TC界面自身句柄(只能获取主界面的) 函数原型: windowgetmyhwnd() 窗口获取自我句柄() 函数参数: 无 返回值: 返回程序自身句柄 中文示例: var hwnd = 窗口获取自我句柄()
窗口提交消息(窗口句柄,消息id,w参数,l参数) 函数名: windowpostmessage 窗口提交消息 函数描述: 将一个消息放入到与指定窗口创建的线程相联系消息队列里,同win32api里面的PostMessage等同的效果(暂时不支持结构体) 函数原型: windowpostmessage(hwnd,msg,wparam,iparam) 窗口提交消息(窗口句柄,消息id,w参数,l参数) 函数参数: hwnd: 窗口句柄值,可以通过找到窗口、顶层窗口句柄等获取句柄的函数得到 msg:指定被发送的消息,必须为整型 wparam:指定附加的消息特定信息,必须为整型。 iparam:指定附加的消息特定信息,必须为整型。 返回值: 此函数必返回 真. 中文示例: var hwnd = 窗口获取自我句柄() 窗口提交消息(hwnd,274,61488,0)//向TC自身窗口,提交最大化的消息
窗口提交消息(窗口句柄,消息id,w参数,l参数) 函数名: windowpostmessage 窗口提交消息 函数描述: 将一个消息放入到与指定窗口创建的线程相联系消息队列里,同win32api里面的PostMessage等同的效果(暂时不支持结构体) 函数原型: windowpostmessage(hwnd,msg,wparam,iparam) 窗口提交消息(窗口句柄,消息id,w参数,l参数) 函数参数: hwnd: 窗口句柄值,可以通过找到窗口、顶层窗口句柄等获取句柄的函数得到 msg:指定被发送的消息,必须为整型 wparam:指定附加的消息特定信息,必须为整型。 iparam:指定附加的消息特定信息,必须为整型。 返回值: 此函数必返回 真. 中文示例: var hwnd = 窗口获取自我句柄() 窗口提交消息(hwnd,274,61488,0)//向TC自身窗口,提交最大化的消息
窗口发送消息(窗口句柄,消息id,w参数,l参数) 函数名: windowsendmessage 窗口发送消息 函数描述: 将指定的消息发送到一个窗口,同win32api 里面的SendMessage等同的效果(暂时还不支持结构体) 函数原型: windowsendmessage(hwnd,msg,wparam,iparam) 窗口发送消息(窗口句柄,消息id,w参数,l参数) 函数参数: hwnd: 窗口句柄值,可以通过找到窗口、顶层窗口句柄等获取句柄的函数得到 msg:指定被发送的消息,必须为整型 wparam:指定附加的消息特定信息,必须为整型。 iparam:指定附加的消息特定信息,必须为整型。 返回值: 根据消息的不同,返回值不一样 中文示例: var hwnd = 窗口获取自我句柄() 窗口发送消息(hwnd,274,61488,0)//向TC自身窗口,发送最大化的消息 ======================================= 窗口发送消息(hwnd,消息id,w参数,l参数) 消息id 的设置,参考F1_帮助文档,windows平台, 9.附录, 常用windows消息大全 例如: 系统命令(WM_SYSCOMMAND) 274 #112 用户选择最大化/最小化,窗口会接收到这个消息 关闭窗口(WM_CLOSE) 16 #10 向窗口发送一个关闭窗口的消息 最小化(SC_MINIMIZE) 61472 #F020 窗口最小化 最大化(SC_MAXIMIZE) 61488 #F030 窗口最大化 ======================================= //消息过程,参数1要用到这个: //F1_帮助文档,windows平台, 9.附录, 常用windows消息大全 功能 A窗口对B窗口通讯_消息过程(消息, w参数, l参数) traceprint(消息) //traceprint(w参数) //traceprint(l参数) 结束 ======================================= //消息路由,参数2也要用到这个: //F1_帮助文档,windows平台, 9.附录, 常用windows消息大全 功能 A窗口对B窗口通讯_消息路由(句柄, 消息, w参数, l参数, 时间, x坐标, y坐标) traceprint(句柄) traceprint(消息) //traceprint(w参数) //traceprint(l参数) 返回 假 结束
中文编程。任重而道远 中文编程。任重而道远 谷凡y : 国人在软件领域,感觉总是一些人在单打独斗,可能是农耕文明影响太深了,连工业文明都没有完全建立起来,更奢谈信息文明,文化上不适应现代大规模智力集约型生产方式,也不包容,基本上还是一些小作坊式的生产方式,思想认识方面发展滞后 qwaspolk : 我也写了很多相关的文章去宣传,让更多人知道,让更多人关注 其实这种智力型生产模式,真的需要智慧的堆积、累积,也就是人多力量大的模式。
361度插件_tc版本。RestoreWindowState 361度插件_tc版本。RestoreWindowState 函数名:RestoreWindowState 功 能:恢复窗口为正常状态。 参 数:窗口句柄:整型数 返回值:返回1表示转换成功 返回0失败 cmd("Notepad", 真) sleep(1000) var hwnd = 窗口查找("", "Notepad") var hwndex = 窗口查找子窗口(hwnd, "", "Edit") var path = "rc:bgkms.dll" //先把bgkms.dll, 添加到资源目录. var ret = dllcall(path, "long", "FakeWindowState", "long", hwndex) //鼠键操作. ret = dllcall(path, "long", "RestoreWindowState", "long", hwndex)
361度插件_tc版本。FakeWindowState 361度插件_tc版本。FakeWindowState 函数名:FakeWindowState 功 能:欺骗目标进程,使目标窗口对应的进程,得到的目标窗口状态是假的。 参 数:窗口句柄:整型数 返回值:返回1表示转换成功 返回0失败 cmd("Notepad", 真) sleep(1000) var hwnd = 窗口查找("", "Notepad") var hwndex = 窗口查找子窗口(hwnd, "", "Edit") var path = "rc:bgkms.dll" //先把bgkms.dll, 添加到资源目录. var ret = dllcall(path, "long", "FakeWindowState", "long", hwndex) //鼠键操作. ret = dllcall(path, "long", "RestoreWindowState", "long", hwndex)
文件类。文件拷贝(),文件移动() 文件类。文件拷贝(),文件移动() 这跟按键精灵的释放附件一样,释放文件到目标文件夹. var ret, pathd //paths pathd = "c:\\dll\\" ret = 文件是否存在(pathd) if(ret != 2) 文件夹创建(pathd) 文件移动("rc:\\keyhook.dll", pathd & "keyhook.dll") //文件拷贝(), 文件移动(), 参数2必须带文件名.文件类型 end
文件类。设置文件属性为隐藏。 文件类。设置文件属性为隐藏。 bingdao52521 : 论坛已有 用dos 设置文件隐藏, cmd("attrib +H d:\\bb.txt",true)//显示是-H 但是感觉 闪个窗口就不爽 所以查资料,调用系统api,实现ini文件的隐藏。 代码如下: var aa = dllcall("kernel32.dll", "bool", "SetFileAttributesA", "char *", "D:\\22.ini","long",34) itcfan : http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.tyuyan.net%2Fforum.php%3Fmod%3Dviewthread%26tid%3D53486&urlrefer=fb84a752668546358800c427331d685f 使用匿名管道命令, TC解压rar格式文件, 下载源文件修改里面的代码,就能隐藏运行命令~
316996072 316996072 612661895 438226676
编程四大法。 编程四大法。 逍遥叹 : 无聊中,现在都没老师出新的tc视频了 稳定。 : 那点东西 还用学吗?来来去去的,就是编程四大法。流程控制,变量和数组,函数多线程,系统api 那点东西,你抄我的,我抄你的,都讲烂了。
鼠键类。模拟按键无效,超级键盘按键也无效 鼠键类。模拟按键无效,超级键盘按键也无效 skynet888: 普通键盘模拟无效,超级键盘也无效,没看出和普通的区别?TC的“超级键盘”超级在哪里? 稳定。 : 普通 键盘按键(),是封装 模拟按键的系统api, 超级键盘按键(),是封装 驱动级按键的系统api, . 游戏公司,用DX绘图软件绘制的游戏,后台操作_必须使用大漠插件,天使插件,乐玩插件的dx模式,其它模式无效。
tc简单开发_内存教程,hook。 tc简单开发_内存教程,hook。 316996072 612661895 438226676
内存挂 比模拟按键的操作,速度能快上多少? 内存挂 比模拟按键的操作,速度能快上多少? 那姑娘是我 : 我的模拟脚本在慢慢的一步步进行游戏模拟人工操作,内存挂直接调人物速度跑贸易,一天10几亿游戏币,是我模拟脚本的10多倍 我的至今没人封号,内存封的可不少 模拟 + 内存。
tc简单开发_内存教程 tc简单开发_内存教程群: 316996072 tc简单开发_内存call群: 612661895 tc简单开发_hook教程: 438226676 内存教程群,学习找基址,找偏移. 内存call 群,学习找call写call,调用游戏call. hook 群,学习全局键盘hook,跨进程键盘hook. 本群大神众多,新手众多,群文件内_资源海量。希望新手分享出_更多的学习笔记,减少 重复造轮子的时间。 好编程,齐学习,齐进步。
开发环境。32位平台,64位平台 开发环境。32位平台,64位平台 小郭 : TC在32位系统,可以跑起来吗? 稳定。 : 在32位,64位都行 小郭 : 开发环境:在64位系统写的脚本, 执行环境: 复制到32位系统,能跑起来吗? 追逐 :@小郭 写出来的是32的 稳定。 : 在64位开发出来的脚本,编译生成的exe是32位的。 这个32位exe,既可在32位平台运行,也可在64位平台执行。 64位平台是高版本平台,高版兼容低版。
编程思路。多测试几次。 编程思路。多测试几次。 Tample : TC初始化开启大漠盾防止非法访问当前进程,但是我发现TC写出来的辅助,进程下面还有2个子进程,还需要去写他们么?还是说保护最外面的一个就行? 就是辅助进程下面有2个进程,一个名字是辅助的名字,打开就有,一个是绑定窗口就有的进程 稳定。 : 主进程就行了,2个子进程不用理会。 如果游戏不报第三方,不非法,就是正常的。 如果报非法,就三个进程都保护起来。 多测试几次,储存成功的测试结果。这是一种编程思路。
鼠键类。模拟按键无效,超级键盘按键也无效 鼠键类。模拟按键无效,超级键盘按键也无效 skynet888: 普通键盘模拟无效,超级键盘也无效,没看出和普通的区别?TC的“超级键盘”超级在哪里? 稳定。 : 普通 键盘按键(),是封装 模拟按键的系统api, 超级键盘按键(),是封装 驱动级按键的系统api, 用DX绘图软件绘制的游戏,后台按键_必须使用大漠插件,天使插件的dx模式,其它模式无效。
流程语句,while循环的使用。 流程语句,while循环的使用。 要求循环输出数字0--99,程序怎样写? 从0到99,一直写下来。共100句代码。 traceprint("0") traceprint("1") traceprint("2") traceprint("4") traceprint("5") traceprint("6") …… …… traceprint("99") // 电脑拥有机器人的能力,专解决一些简单、重复、枯燥、烦锁的工作,从不嫌累。 7.0代码: var i = 0 while(i < 100) traceprint(i) i = i + 1 sleep(20) end 整个过程,仅使用4句代码。 神奇的编程力量。编程之神奇。
流程语句,for循环和丢弃的使用。 流程语句,for循环和丢弃的使用。 要求循环输出数字0--99,但老板要丢弃数字19。代码怎样写? 从0到99,一直写下来。共100句代码。 traceprint("0") traceprint("1") traceprint("2") traceprint("4") traceprint("5") traceprint("6") …… //traceprint("19") 注释掉19. …… …… traceprint("99") // 电脑拥有机器人能力,专门解决一些:简单、重复、枯燥的工作。从不会累。 tc程序的写法: for(var i=0; i<100; i++)//共有100次循环. if(i == 19) continue //在for循环中,扔弃这一轮的执行,开始下一轮执行. end traceprint(i) sleep(20) end 整个过程,仅用N句代码。神奇的编程力量。
流程语句,用for循环_构造枚举法。 流程语句,用for循环_构造枚举法。 一个仓库密码由六位的纯数字组成,每位可能的值是0--9。 用枚举法列出该密码,所有的可能值。程序怎样写? // 从000000到999999,一直写下来。共1000'000句代码。 traceprint("000000") traceprint("000001") traceprint("000002") traceprint("000004") traceprint("000005") traceprint("000006") …… …… traceprint("999999") 电脑拥有机器人能力,专门解决一些:简单、重复、枯燥的工作。用for() 循环的写法: for(var A=0; A<10; i++) for(var B=0; B<10; i++) for(var C=0; C<10; i++) for(var D=0; D<10; i++) for(var E=0; D<10; i++) for(var F=0; D<10; i++) var str_va = A & B & C & D & E & F traceprint(str_va) sleep(20) end end end end end end 整个过程,仅用N句代码实现,编程之神奇。
流程语句,for循环,while循环的使用。 流程语句,for循环,while循环的使用。 循环输出0--99的数字,用程序要怎样写,从0到1到2到……99,一直写共100句代码。 traceprint("0") traceprint("1") traceprint("2") traceprint("4") traceprint("5") traceprint("6") …… …… traceprint("99") 电脑拥有机器人能力,专门解决一些:简单、重复、枯燥的工作。用for() 循环写法: for(var i=0; i<100; i++) traceprint(i) sleep(10) end 实现过程,仅使用4句代码。编程之神奇。 ======================================================= 用while() 循环的写法: var i = 0 while(i < 100) traceprint(i) i = i + 1 sleep(10) end 实现过程,仅使用6句代码。编程之神奇。
流程控制,选择分支 流程控制,选择分支 tc的select(),跟C语言的switch(),易语言的“判断()”一样。 var qq=10//先得到或设定择偶标准。 select(qq) //开始选择分支(美女)。 //在众多分支(美女)中,如果遇到符合标准的分支(美女),执行点就会跳转到end。 //不再去拣其它的分支(美女),不管下面还有多好多漂亮的。 .. .. //如果没有遇到符合标准的分支(美女),就会逐个选择比较,直到默认分支。 .. case 10 //(美女1) //代码,选择美女1后,直接跳转到end,不会再跳转到美女3。 case 9 //(美女2) //代码 case 10 //(美女3) //代码 case 8 //(美女4) //代码 default messagebox("没有满意的选择,则执行这个默认设置。") end // 这一理解非常重要。在做a星寻路—递归算法时会用到。 触类旁通: 易语言的判断(表达式)... ,类似tc的select(变量名) case常量...end . 判断()... 判断()... 判断()... , 类似tc的 select(变量名) case常量值...case常量值...case常量值...end 区别:易语言判断(),使用的是表达式。 tc的 select() ,case使用的是常量值。 . Delphi7,C++,C#,Java的select(),大同小异。
流程控制,条件分支。 流程控制,条件分支。 TC的if(),跟C语言的if(),易语言的“如果()”一样。 var qq=10 //先设定择偶标准。 //再按标准 来选择分支(美女)。 //在众多分支(美女)中,如果遇到符合标准的分支(美女),执行点就会跳转到end。 //不再去拣其它的分支(美女),不管下面还有多好多漂亮的。 .. .. //如果没有遇到符合标准的分支(美女),就会逐个选择比较,直到执行到默认分支。 .. if(qq==12)//(美女1) //代码 elseif(qq==11)//(美女2) //代码 elseif(qq==10)//(美女3) //代码。选择美女3后,直接跳转到end,不会再跳转到美女5。 elseif(qq==9)//(美女4) //代码 elseif(qq==10)//(美女5) //代码 else messagebox("没有满意的选择,执行这个默认的设置。") end ======================================================= 这个理解很重要,在做a星寻路—递归算法要使用到。触类旁通: 易语言 如果真()... , 类似TC的if()...end 如果()...否则... , 类似TC的if()...else...end Delphi,C语言,C++,C#,Java的if()语句大同小异。
流程控制,分支的学习。 流程控制,分支的学习。 . tc的流程控制, 分支有 if分支,select分支。 循环有for循环, while循环。
流程语句 流程语句 找图找色,使tc简单开发 拥有眼睛, 鼠标键盘,使tc简单开发 拥有手足, 而流程语句,使TC 拥有大脑。 流程语句虽然简单,但在编程四大法中是最重要的。并且在按键精灵,tc简单开发,易语言,习语言中通用, 在C语言,C++中也通用。 流程语句:if()语句,select()语句, for遍历,while循环. 还有三个跳转:continue,break,return.
编程路线的讨论。 编程路线的讨论。 流程控制,变量和数组, 函数多线程,结构体api(编写标准dll)。 . 面向类和对象的。类的定义。 类的封装,继承,多态。(编写com接口dll 学编程来来去去的,就是前四样 + 后二样。 . 这四个东西学好后,无论按键精灵、TC简单开发,易语言、习语言;还是aardio,Delphi,C语言,C++,按热键F1_读读帮助文档 就能写程序。 ======================================================= 天赐已认证 : 类的继承我懂 多态是啥? 能举个简单例子么 稳定。 : 理解这个多态 很抽象。 龙生九子,各有一态。 父类的指针或引用,有多种表现形态。 用父类的指针或引用,统一操作各种子类对象。 逝水如斯 : 你在公司是员工,在家是你妈儿子,在学校是学生。在不同场合,有不同的身份。 同一个类 多种形态,这就是多态。 天赐已认证 : @逝水如斯 这个解释很通俗易懂 赞… ======================================================= 讨论:语言本身没有多大区别。 真正的差距,在于用户量。 有了用户量,就会衍生出大量的 论坛问答,教程,百度经验,百度知道,有价值的就是这些东西。 真正的差距,在于用户量。 有了用户量,就会衍生出大量类/库/模块/插件。有价值的就是这些东西。 用插件、模块写挂肯定方便。那么多成熟的模块拿来就用,你用VB搞,用VC搞,什么都得自己弄,哪来的效率!
编程致富。写脚本致富 编程致富。写脚本致富 脚本作者 : @群主 大神,我现在的境界就是给自己做脚本,想弄点私房钱,简单点的学习哪个方面的 我表达的不准,我的意思是现在做什么脚本能稍微弄点私房钱,现在只会自己用 稳定 : 这问题,概念性的回复下。 首先你要学会两套框架。 1,多线程框架。 2,dll窗口 + 定时器框架。 多线程,就是多窗口多开。每个窗口对应一个线程,40窗口对应40线程。还需要加一个守护线程。 在目标窗口: 点击“保存配置”按钮时,把界面信息写入配置。呼出窗口时,读取配置文件,设置到界面。 dll窗口 + 定时器,是新建一个dll,在dll中加载一个窗口。讲得白话点,就是编写一个带窗口的dll。 每启动一个游戏窗口,使用SetWindowsHookEx(),把dll加载到目标窗口进程。 用dll窗口的定时器,做循环。就是UI线程的循环。 在dll窗口中,设置配置信息,保存配置信息。 因为dll可以重复加载,所以可以加载到多个目标窗口,在目标进程中执行。不用hook 用dll劫持注入法 也是等效的。 之后,可以选图色模式,或内存模式。 图色模式,你要精通多点找色。做两套代码框架:开发框架,执行框架。 开发框架,读取系统分辨率x0,系统分辨率y0 执行框架,读取系统分辨率x1,系统分辨率y1 做到“等比例缩放”,适应所有系统分辨率。 内存模式,就比较简单。读取蓝值,红值,怪物座标,人物座标, 之后模拟鼠标键盘。补红蓝,找怪打怪,a星寻路_定点回位。 图色模式 是学起来容易,用起来难。 内存模式 是学起来难,用起来容易。 ======================================================= 努力学习,迎娶白富美,走上人生颠峰。 票子,房子,妻子,儿子,车子,五子登科不是梦。过上本群大神,土豪般的生活。
编程语言的内功。 编程语言的内功。 讲真话,一个没有接触过编程的人,通过C语言视频,往往只记住了这个怎么用, 代码是怎样运行的,根本就没有装进脑袋。 去看书吧,读白纸黑字的书。 C语言是需要去了解的,需要用心体会的。这就像想找一个女朋友一样(踏实方法:恋爱,婚姻),需要了解她是怎么想的,怎样思考的。若不去理解C语言,要用好C语言是极其难的。基础语法,完全是不能保证用好C语言的。 C语言并不是用来速成的(浮躁方法:约炮,一夜情,嫖妓)。这和教学视频的目的相差太大,视频的目的,就是迅速帮你学会 使用一门语言。仅是使用。
编程四大法。学习方向 编程四大法。学习方向 流程控制,变量和数组,函数多线程,系统api。 之后学习类的三要素: 类的封装,类的继承,类的多态 想学习内存的,必须学习类。 一个纯虚类(基因模块),可以造出无数个 该类的对象。 如植物大战僵尸,一个植物类,可以实例化成 无数植物, 一个僵尸类,可以实例化成 无数僵尸, 一个卡槽类,可以实例化成 10个卡槽, 一个物品类,可以实例化成 无数阳光,金币,银币,钻石, 学完类,你就知道 类变量,怎样生成基址,怎样生成偏移, 类函数(子程序,子函数),怎样生成call 你会造锁,你就会解锁 你会造车,你就会修车 ======================================================= 学完编程四大法,类的三要素,编程就大成了。其它东西不要学,浪费精力 特别是内存,一些人不断学习找基址,找偏移, 不学习结构体_编译生成以后,是什么样子。不知道类变量,编译生成以后,是什么样子的。本末倒置 特别是内存,一些人不断学习找call,写call, 不学习子程序/子函数 _在编译生成后,是什么样子的。不学习类函数,在编译生成后,是什么样子的。也是本末倒置
首页
1
2
3
4
5
6
下一页