剑仙十号 外挂工程师
关注数: 19 粉丝数: 442 发帖数: 3,966 关注贴吧数: 96
窗口类。怎样做窗口切换的脚本 窗口类。怎样做窗口切换的脚本 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绑定模式。
窗口类。获取具有输入焦点的窗口句柄 窗口类。获取具有输入焦点的窗口句柄 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") 结束
窗口类。请教关于窗口切换的问题,新人问题 窗口类。请教关于窗口切换的问题,新人问题 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抓抓"获取.
窗口类。请教关于窗口切换的问题,新人问题 窗口类。请教关于窗口切换的问题,新人问题 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。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组件, 或参考天使插件的源代码,仿写一个大漠插件。
窗口发送消息(窗口句柄,消息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参数) //句柄, 是窗口控件的句柄. 返回 假 结束
漏写分号,或者大括号},或者写成全角分号,编译器提示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}; //连这个分号也没有写才是错误! 所以就把错误定位到,头文件的第一个分号前面了。
窗口发送消息(窗口句柄,消息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参数) 返回 假 结束
编程路线的讨论。 编程路线的讨论。 流程控制,变量和数组, 函数多线程,结构体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星寻路_定点回位。 图色模式 是学起来容易,用起来难。 内存模式 是学起来难,用起来容易。 ======================================================= 努力学习,迎娶白富美,走上人生颠峰。 票子,房子,妻子,儿子,车子,五子登科不是梦。过上本群大神,土豪般的生活。
首页 1 2 3 4 5 6 下一页