▶︎
all
running...

介绍

javaelf意在提供更加便捷系统化的游戏脚本开发,它是在java语言的基础上封装了大漠插件,在此基础上借助java强大且广泛的生态支持,以java为主要的表现方式来完成脚本的开发,你甚至可以使用云api或者离线sdk来完成更强功能的开发!封装和文档基于大漠7.2版本,这也就意味着大部分功能是收费的,当然它向下兼容着大漠的3.1或者更低的免费版本。

免责申明

javaelf无任何盈利行为,如有侵权请联系我删除

1、 大漠插件

2、 jawin

3、 ...

快速上手【必看】

下载地址

https://wwa.lanzoui.com/id130nppy9g 密码: 408509165(失效联系qq)  
32位jdk请自行下载

环境要求

1、jdk1.8(32位).
2、windows pc平台
3、开发工具需要以管理员方式运行

项目文件存放地址

2021-4-6日更新,不再需要手动添加jawin.jar和jawin.dll,只需要在Elf.init之前执行 GlobalSetting.copy_dlls(); 
动态库文件会自动移动到jre运行环境下。

调用插件的第一个方法

    1.GlobalSetting.copy_dlls();
    2.Elf.init();//全局只调用一次,提供带参的方法自定义dm版本;
    3.Elf elf = new Elf();
    6.System.out.println(elf.Ver()); //打印版本 7.2043
line 1: 复制dll动态库到java runtime 下,只需执行一次,多次执行不影响。
line 2: 初始化对象并全局注册dm,全局只用调用一次,即使是多线程环境下.
line 3: 获取对象实例,这里需要注意,在不同线程里,需要用这个来获取新对象  
        当然首先你要明白自己在做什么,特别是多个游戏窗口的绑定的情况,  
        游戏多开每个游戏都要对应一个elf对象实例,判断对象是否相等可以用  
        GetId(),或者用 elf.equals();

调用插件其他方法

后台 BackGround.class
键盘 KeyBoard.class
鼠标 Mouse.class
窗口 Window.class
图片 Picture.class
颜色 Color.class
FooBar Foobar.class
文字识别 Ocr.class
基本设置 BasicSetting.class
系统设置 OsSetting.class
以上就是脚本类,除去Elf本身的基本方法,脚本所需且常用的方法都在上面的类里面,每个脚本类对应一个Operations类,方便反射调用.

调用方式说明

方式一

以FindPicS为例,这个函数包含变参指针,很具有代表性。
    Elf elf = new Elf();
    Object[] params = new Object[]{0,0,1920,1080,"test.png","",0.9,0,0,0};
    String res = elf.excute(Picture.class,PictureOperations.FindPicS,params).toString;
res 返回的是找到的图片的文件名. 没找到返回长度为0的字符串,那么如果找到了图片我们怎么获取图片所在的位置?  
答案就是 params[8],params[9] → (564,325)

方式二

可能有小伙伴会觉得麻烦,不习惯上面的操作方式,那么可以使用这个方式。
    Elf elf = new Elf();
    Picture picture = new Picture(elf);
    Object[] params = new Object[]{0,0,1920,1080,"test.png","",0.9,0,0,0};
    String res = picture.FindPicS(params);
该方式获取图片位置依然是params[8],params[9].

上面的指导很重要,建议好好看一下。


源码混淆

代码混淆是比较重要的,我们存放在jre下面的图片/字库等资源文件可以通过加密,但是jar就必须通过混淆  
来进行反破解,这一步是很重要的,即便是打包成exe,在系统temp下也会有jar,会被别人拿到jar源文件,  
所以必须要混淆。

项目打包

快速打包

首先打包成jar,然后拷贝上面提到过的jre到同一目录,新建一个bat文件,  
编辑“ ./jre/java.exe -jar xxx.jar ”,双击bat运行,如果报错百度下,通常是jar包没打对。

打包成exe

exl4j打包,自行百度。

深入了解

基本设置

基本设置包含javaelf运行时一些常用设置

EnablePicCache

函数说明:

设置是否开启或者关闭插件内部的图片缓存机制. (默认是打开)

函数体:

    int EnablePicCache(boolean enable)

参数列表:

参数类型 参数说明
boolean true:打开,false关闭

返回值:

返回值类型 说明
0 失败
1 成功

参考:

    Elf elf = new Elf();
    int res = elf.EnablePicCache(true);
    logger.info("EnablePicCache :{}",res);

结果:

EnablePicCache :1

备注:

有些时候,系统内存比较吃紧,这时候再打开内部缓存,可能会导致缓存分配在虚拟内存,这样频繁换页,反而导致图色效率下降.这时候就建议关闭图色缓存.所有图色缓存机制都是对本对象的,也就是说,调用图色缓存机制的函数仅仅对本对象生效. 每个对象都有一个图色缓存队列.

GetBasePath

函数说明:

获取注册在系统中的dm.dll的路径.

函数体:

    String GetBasePath()

参数列表:

返回值:

返回值类型 说明
0 失败
1 成功

参考:

    Elf elf = new Elf();
    String res = elf.GetBasePath();
    logger.info("GetBasePath :{}",res);

结果:

GetBasePath :c:\program files (x86)\java\jdk1.8.0_131_32\jre\bin\dm7\

备注:

GetDmCount

函数说明:

返回当前进程已经创建的dm对象个数.也是elf对象有效的个数

函数体:

    int GetDmCount()

参数列表:

返回值:

返回值类型 说明
int 返回对象个数

参考:

    Elf elf = new Elf();
    int res = elf.GetDmCount();
    logger.info("GetBasePath :{}",res);

结果:

GetDmCount :1

备注:

GetID

函数说明:

返回当前大漠对象的ID值,这个值对于每个对象是唯一存在的

函数体:

    int GetID()

参数列表:

返回值:

返回值类型 说明
int 当前对象的ID值

参考:

    Elf elf = new Elf();
    int res = elf.GetId();
    logger.info("GetId :{}",res);

结果:

GetId :375455716

备注:

多窗口绑定或多线程情况下,用来判断对象是否一致。

GetLastError

函数说明:

获取插件命令的最后错误

函数体:

    int GetLastError()

参数列表:

返回值:

返回值 说明
0 无错误
-1 使用了收费功能,但是没有进行收费注册
-2 窗口绑定使用模式0 2 时出现,因为目标窗口有保护. 常见于win7以上系统.或者有安全软件拦截插件.解决办法: 关闭所有安全软件,然后再重新尝试. 如果还不行就可以肯定是目标窗口有特殊保护.
-3 使用模式0 2 时出现,可能目标窗口有保护,也可能是异常错误. 可以尝试换绑定模式或许可以解决决.
-5 使用模式101 103时出现, 这个错误的解决办法就是关闭目标窗口,重新打开再绑定即可. 也可能是运行脚本的进程没有管理员权限.
-6 被安全软件拦截。典型的是金山.360等. 如果是360关闭即可。 如果是金山,必须卸载,关闭是没用的.
-7 使用模式101 103时出现,异常错误. 还有可能是安全软件的问题,比如360等。尝试卸载360.
-8 使用模式101 103时出现, 目标进程可能有保护,也可能是插件版本过老,试试新的或许可以解决. -8可以尝试使用DmGuard中的np2盾配合.
-9 同 -7
-10 同 -8
-11 使用模式101 103时出现, 目标进程有保护.无法解决
-12 同 -11
-13 使用模式101 103时出现, 目标进程有保护. 或者是因为上次的绑定没有解绑导致。 尝试在绑定前调用ForceUnBindWindow.
-14 可能系统缺少部分DLL,尝试安装d3d. 或者是鼠标或者键盘使用了dx.mouse.api或者dx.keypad.api,但实际系统没有插鼠标和键盘. 也有可能是图色中有dx.graphic.3d之类的,但相应的图色被占用,比如全屏D3D程序.
-15
-16 可能使用了绑定模式 0 和 101,然后可能指定了一个子窗口.导致不支持.可以换模式2或者103来尝试. 另外也可以考虑使用父窗口或者顶级窗口.来避免这个错误。还有可能是目标窗口没有正常解绑然后再次绑定的时候.
-17 模式101 103时出现,这个是异常错误,需要大漠作者解决
-18 句柄无效
-19 同 -17
-20 使用模式101 103 时出现,说明目标进程里没有解绑,并且子绑定达到了最大. 尝试在返回这个错误时,调用ForceUnBindWindow来强制解除绑定.
-21 使用模式101 103 时出现,说明目标进程里没有解绑. 尝试在返回这个错误时,调用ForceUnBindWindow来强制解除绑定.
-22 使用模式0 2,绑定64位进程窗口时出现,因为安全软件拦截插件释放的EXE文件导致.
-23 使用模式0 2,绑定64位进程窗口时出现,因为安全软件拦截插件释放的DLL文件导致.
-24 使用模式0 2,绑定64位进程窗口时出现,因为安全软件拦截插件运行释放的EXE.
-25 使用模式0 2,绑定64位进程窗口时出现,因为安全软件拦截插件运行释放的EXE.
-26 使用模式0 2,绑定64位进程窗口时出现, 因为目标窗口有保护. 常见于win7以上系统.或者有安全软件拦截插件.解决办法: 关闭所有安全软件,然后再重新尝试. 如果还不行就可以肯定是目标窗口有特殊保护.
-27 绑定64位进程窗口时出现,因为使用了不支持的模式,目前暂时只支持模式0 2 11 13 101 103
-28 绑定32位进程窗口时出现,因为使用了不支持的模式,目前暂时只支持模式0 2 11 13 101 103
-37 同 -11
-100 调用读写内存函数后,发现无效的窗口句柄
-101 读写内存函数失败
-200 AsmCall失败

参考:

    Elf elf = new Elf();
    int res = elf.GetLastError();
    logger.info("GetLastError :{}",res);

结果:

GetLastError :0 //即为正常

备注:

如果出现异常,可以用这个函数来获取错误,这里所说的异常并不全部包含java抛出、捕获的异常,在实际测试中如果触发错误-1,  
即未注册使用收费功能的话,会出现"Java(TM) Platform SE binary 已停止工作"错误,这种情况下无法使用该函数获取到错误。  

GetPath

函数说明:

获取全局路径

函数体:

    String GetPath()

参数列表:

返回值:

返回值类型 说明
String 全局路径

参考:

    Elf elf = new Elf();
    String res = elf.GetPath();
    logger.info("res.length : {}",res.length());
    logger.info("res == null :{}" ,res ==null);
    logger.info("res == \"\" :{}" ,res == "");
    logger.info("GetPath :{}",res);

结果:

res.length : 0
res == null :false
res == "" :false
GetPath :

备注:

在未进行SetPath之前,该函数获取到的都是空值,这个空值并非null或者"",如果要进行非空判断请使用length()

Reg

函数说明:

调用此函数来注册,从而使用大漠插件的高级功能.

函数体:

    int Reg(String code,String ver_info)

参数列表:

参数类型 说明
String 注册码,大漠收费
String 长度不能超过20. 并且只能包含数字和字母以及小数点. 这个信息可以随意填写,可空,后台可以查看。

返回值:

返回值 说明
-1 无法连接网络
-2 进程没有以管理员方式运行
0 失败且未知错误
1 成功
2 余额不足
3 绑定了本机器,但是账户余额不足50元.
4 注册码错误
5 你的机器或者IP在黑名单列表中或者不在白名单列表中.
6 非法使用插件.
7 你的帐号因为非法使用被封禁. (如果是在虚拟机中使用插件,必须使用Reg或者RegEx,不能使用RegNoMac或者RegExNoMac,否则可能会造成封号,或者封禁机器)
8 ver_info不在你设置的附加白名单中.
77 机器码或者IP因为非法使用,而被封禁. (如果是在虚拟机中使用插件,必须使用Reg或者RegEx,不能使用RegNoMac或者RegExNoMac,否则可能会造成封号,或者封禁机器),封禁是全局的,如果使用了别人的软件导致77,也一样会导致所有注册码均无法注册。解决办法是更换IP,更换MAC.
-8 版本附加信息长度超过了20
-9 版本附加信息里包含了非法字母.

参考:

    Elf elf = new Elf();
    int res = elf.Reg(MyParam.REG_CODE,"ELF");
    logger.info("Reg :{}",res);

结果:

Reg :1

备注:

此函数每个进程调用一次即可,不需要每个DM对象都调用,也不需要每个线程都调用。

RegEx

函数说明:

调用此函数来注册,从而使用插件的高级功能. 可以根据指定的IP列表来注册.

函数体:

    int Reg(String code,String ver_info,String ip)

参数列表:

参数类型 说明
String 注册码,大漠收费
String 长度不能超过20. 并且只能包含数字和字母以及小数点. 这个信息可以随意填写,可空,后台可以查看。
String 插件注册ip地址,多个可用 | 隔开

返回值:

返回值 说明
-1 无法连接网络
-2 进程没有以管理员方式运行
0 失败且未知错误
1 成功
2 余额不足
3 绑定了本机器,但是账户余额不足50元.
4 注册码错误
5 你的机器或者IP在黑名单列表中或者不在白名单列表中.
6 非法使用插件.
7 你的帐号因为非法使用被封禁. (如果是在虚拟机中使用插件,必须使用Reg或者RegEx,不能使用RegNoMac或者RegExNoMac,否则可能会造成封号,或者封禁机器)
8 ver_info不在你设置的附加白名单中.
77 机器码或者IP因为非法使用,而被封禁. (如果是在虚拟机中使用插件,必须使用Reg或者RegEx,不能使用RegNoMac或者RegExNoMac,否则可能会造成封号,或者封禁机器),封禁是全局的,如果使用了别人的软件导致77,也一样会导致所有注册码均无法注册。解决办法是更换IP,更换MAC.
-8 版本附加信息长度超过了20
-9 版本附加信息里包含了非法字母.

参考:

    Elf elf = new Elf();
    int res = elf.RegEx(MyParam.REG_CODE,"ELF","58.218.207.207|58.218.204.170|221.229.162.171|221.229.162.40");
    logger.info("RegEx :{}",res);

结果:

RegEx :1

备注:

此函数每个进程调用一次即可,不需要每个DM对象都调用,也不需要每个线程都调用。  
ip可选(电信):58.218.207.207|58.218.204.170|221.229.162.171|221.229.162.40
ip可选(联通):122.192.218.205|122.192.218.111|122.192.218.58|122.192.218.40

RegExNoMac

函数说明:

调用此函数来注册,从而使用插件的高级功能. 可以根据指定的IP列表来注册.与RegEx类似,只是注册不带mac地址

函数体:

    int RegExNoMac()

RegNoMac

函数说明:

调用此函数来注册,从而使用插件的高级功能.与Reg类似,只是注册不带mac地址

函数体:

    int RegNoMac()

SetDisplayInput

函数说明:

设定图色的获取方式,默认是显示器或者后台窗口(具体参考BindWindow)

函数体:

    int SetDisplayInput(String mode)

参数列表:

参数类型 说明
String "screen":这个是默认的模式,表示使用显示器或者后台窗口.
"pic:file":指定输入模式为指定的图片,如果使用了这个模式,则所有和图色相关的函数均视为对此图片进行处理,比如文字识别查找图片 颜色 等等一切图色函数.需要注意的是,设定以后,此图片就已经加入了缓冲,如果更改了源图片内容,那么需要释放此缓冲,重新设置.
"mem:addr,size" :指定输入模式为指定的图片,此图片在内存当中. addr为图像内存地址,size为图像内存大小.如果使用了这个模式,则所有和图色相关的函数,均视为对此图片进行处理.比如文字识别 查找图片 颜色 等等一切图色函数.

返回值:

返回值 说明
int 0:成功,1:失败

参考:

    Elf elf = new Elf();
    int res = elf.SetDisplayInput("screen");
    logger.info("SetDisplayInput :{}",res);

结果:

SetDisplayInput : 1

备注:

大部分情况下默认就行

SetEnumWindowDelay

函数说明:

设置EnumWindow,EnumWindowByProcess,EnumWindowSuper,FindWindow以及FindWindowEx的最长延时,内部默认超时是10秒.

函数体:

    int SetEnumWindowDelay(int delay)

参数列表:

参数类型 说明
int 超时毫秒数

返回值:

返回值 说明
int 0:成功,1:失败

参考:

    Elf elf = new Elf();
    int res = elf.SetEnumWindowDelay(1000);
    logger.info("SetEnumWindowDelay :{}",res);

结果:

SetEnumWindowDelay :1

备注:

有些时候,窗口过多,并且窗口结构过于复杂,可能枚举的时间过长. 那么需要调用这个函数来延长时间。避免漏掉窗口.

SetPath

函数说明:

设置全局路径,设置了此路径后,所有接口调用中,相关的文件都相对于此路径. 比如图片,字库等。

函数体:

    int SetPath(String path)

参数列表:

参数类型 说明
String 可以是相对路径,也可以是绝对路径

返回值:

返回值 说明
int 0:成功,1:失败

参考:

    Elf elf = new Elf();
    String imagesPath = System.getProperty("java.home")+"/bin/image";
    int res = elf.SetPath(new File(imagesPath).getCanonicalPath());
    logger.info("SetPath :{}",res);
    String resPath = elf.GetPath();
    logger.info("GetPath :{}",resPath);

结果:

SetPath :1
GetPath :C:\Program Files (x86)\Java\jdk1.8.0_131_32\jre\bin\image\

备注:

注意,SetPath个GetPath均针对当前对象,你可以把这个对象理解为dm对象,也可以理解为elf对象,他只对当前对象生效。

SetShowErrorMsg

函数说明:

设置是否弹出错误信息,默认是打开.

函数体:

    int SetShowErrorMsg(boolean show)

参数列表:

参数类型 说明
boolean true:打开,false:关闭

返回值:

返回值 说明
int 0:成功,1:失败

参考:

    Elf elf = new Elf();
    int res = elf.SetShowErrorMsg(false);
    logger.info("SetShowErrorMsg :{}",res);

结果:

SetShowErrorMsg :1

备注:

弹出的错误消息提示在开发时可以帮助我们定位错误,生产环境下建议打开。

SpeedNormalGraphic

函数说明:

设置是否对前台图色进行加速. (默认是关闭). (对于不绑定,或者绑定图色为normal生效)( 仅对WIN8以上系统有效)

函数体:

    int SpeedNormalGraphic(boolean enable)

参数列表:

参数类型 说明
boolean true:打开,false:关闭

返回值:

返回值 说明
int 0:成功,1:失败

参考:

    Elf elf = new Elf();
    elf.Reg(MyParam.REG_CODE,"ELF");//收费函数
    int res = elf.SpeedNormalGraphic(false);
    logger.info("SpeedNormalGraphic :{}",res);

结果:

SpeedNormalGraphic :1

备注:

WIN8以上系统,由于AERO的开启,导致前台图色速度很慢,使用此接口可以显著提速.
WIN7系统无法使用,只能通过关闭aero来对前台图色提速.
每个进程,最多只能有一个对象开启此加速接口,如果要用开启别的对象的加速,那么要先关闭之前开启的.
开启此接口后,仅能对主显示器的屏幕进行截图,分屏的显示器上的内容无法截图
开启此接口后,程序CPU会有一定上升,因为这个方法是以牺牲CPU性能来提升速度的.

Ver

函数说明:

返回当前插件版本号

函数体:

    String Ver()

参数列表:

返回值:

返回值 说明
String 插件的版本描述字符串

参考:

    Elf elf = new Elf();
    String res = elf.Ver();
    logger.info("Ver :{}",res);

结果:

Ver :7.2104

备注:

后台

BindWindow

函数说明:

绑定指定的窗口。

函数体:

    int BindWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] String 屏幕颜色获取方式,取值如下
"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模式慢许多。
"dx": dx模式,等同于BindWindowEx中,display设置的"dx.graphic.2d|dx.graphic.3d",具体参考BindWindowEx。
params[2] String 鼠标仿真模式,取值如下
"normal": 正常模式,平常我们用的前台鼠标模式。
"windows": Windows模式,采取模拟windows消息方式。
"windows2": Windows2 模式,采取模拟windows消息方式(锁定鼠标位置)。
"windows3": Windows3模式,采取模拟windows消息方式,可以支持有多个子窗口的窗口后台。
"dx": dx模式,采用模拟dx后台鼠标模式,这种方式会锁定鼠标输入.有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后激活),否则可能会出现绑定后鼠标无效的情况。
"dx2": dx2模式,这种方式类似于dx模式,但是不会锁定外部鼠标输入,有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后手动激活),否则可能会出现绑定后鼠标无效的情况。
params[3] String 键盘仿真模式,取值如下
"normal": 正常模式,平常我们用的前台键盘模式。
"windows": Windows模式,采取模拟windows消息方式。
"dx": dx模式,采用模拟dx后台键盘模式。有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后激活),否则可能会出现绑定后键盘无效的情况。
params[4] int 模式,取值如下
"0": 推荐模式此模式比较通用,而且后台效果是最好的。
"2": 同模式0,如果模式0有崩溃问题,可以尝试此模式。
"101": 超级绑定模式. 可隐藏目标进程中的dm.dll.避免被恶意检测。
"103": 同模式101,如果模式101有崩溃问题,可以尝试此模式。
"11": 需要加载驱动,适合一些特殊的窗口,如果前面的无法绑定,可以尝试此模式. 此模式不支持32位系统。
"13": 需要加载驱动,适合一些特殊的窗口,如果前面的无法绑定,可以尝试此模式. 此模式不支持32位系统。

返回值:

返回值 说明
int 0:失败,1:成功

参考:

    Elf elf = new Elf();
    elf.Reg(MyParam.REG_CODE,"ELF");//收费函数
    Object[] params = new Object[]{"","h.txt"};//我本地打开的一个记事本文件h.txt
    int hwnd = Integer.parseInt(elf.execute(Window.class,WindowOperations.FindWindow,params)toString());
    logger.info("获取到句柄: {},执行绑定.",hwnd);
    params = new Object[]{hwnd,"normal","windows","windows",0};
    int res = Integer.parseInt(elf.execute(Background.class,BackgroundOperations.BindWindowparams).toString());
    logger.info("BindWindow :{}",res);

结果:

获取到句柄: 9177636,执行绑定.
BindWindow :1

备注:

模式101 103在大部分窗口下绑定都没问题。但也有少数特殊的窗口,比如有很多子窗口的窗口,  
对于这种窗口,在绑定时,一定要把鼠标指向一个可以输入文字的窗口,比如一个文本框,  
最好能激活这个文本框,这样可以保证绑定的成功,如果返回值是0,可以用GetLastError获取信息。

BindWindowEx

函数说明:

绑定指定的窗口,可以自定义更多详细模式。

函数体:

    int BindWindowEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] String 屏幕颜色获取方式,取值如下
"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模式慢许多。
"dx": dx模式,用于窗口采用dx模式刷新,取值可以是以下任意组合,组合采用"|"符号进行连接
"dx.graphic.2d": 2d窗口的dx图色模式
"dx.graphic.2d.2": 是dx.graphic.2d的增强模式.兼容性更好
"dx.graphic.3d": 3d窗口的dx图色模式
"dx.graphic.3d.8": 3d窗口的dx8图色模式,此模式对64位进程无效
"dx.graphic.opengl": 3d窗口的opengl图色模式,极少数窗口采用opengl引擎刷新,此图色模式速度可能较慢
"dx.graphic.opengl.esv2": 3d窗口的opengl_esv2图色模式,此图色模式速度可能较慢
"dx.graphic.3d.10plus": 3d窗口的dx10 dx11图色模式
params[2] String 鼠标仿真模式,取值如下
"normal": 正常模式,平常我们用的前台鼠标模式。
"windows": Windows模式,采取模拟windows消息方式。
"windows3": Windows3模式,采取模拟windows消息方式,可以支持有多个子窗口的窗口后台。
"dx": 取值可以是以下任意组合,组合采用"|"符号进行连接
"dx.mouse.position.lock.api": 此模式表示通过封锁系统API,来锁定鼠标位置
"dx.mouse.position.lock.message": 此模式表示通过封锁系统消息,来锁定鼠标位置
"dx.mouse.focus.input.api": 此模式表示通过封锁系统API来锁定鼠标输入焦点
"dx.mouse.focus.input.message": 此模式表示通过封锁系统消息来锁定鼠标输入焦点
"dx.mouse.clip.lock.api": 此模式表示通过封锁系统API来锁定刷新区域。注意,使用这个模式,在绑定前,必须要让窗口完全显示出来.
"dx.mouse.input.lock.api": 此模式表示通过封锁系统API来锁定鼠标输入接口
"dx.mouse.state.api": 此模式表示通过封锁系统API来锁定鼠标输入状态
"dx.mouse.state.message": 此模式表示通过封锁系统消息来锁定鼠标输入状态
"dx.mouse.api": 此模式表示通过封锁系统API来模拟dx鼠标输入
"dx.mouse.cursor": 开启此模式,可以后台获取鼠标特征码
"dx.mouse.raw.input": 有些窗口需要这个才可以正常操作鼠标
"dx.mouse.input.lock.api2": 部分窗口在后台操作时,前台鼠标会移动,需要这个属性
"dx.mouse.input.lock.api3": 部分窗口在后台操作时,前台鼠标会移动,需要这个属性
params[3] String 键盘仿真模式,取值如下
"normal": 正常模式,平常我们用的前台键盘模式。
"windows": Windows模式,采取模拟windows消息方式。
"dx": 取值可以是以下任意组合,组合采用"|"符号进行连接
"dx.keypad.input.lock.api": 此模式表示通过封锁系统API来锁定键盘输入接口
"dx.keypad.state.api": 此模式表示通过封锁系统API来锁定键盘输入状态
"dx.keypad.api": 此模式表示通过封锁系统API来模拟dx键盘输入
"dx.keypad.raw.input": 有些窗口需要这个才可以正常操作键盘
params[4] String 公共属性 dx模式共有,取值可以是以下任意组合,组合采用"|"符号进行连接
"dx.public.active.api": 此模式表示通过封锁系统API来锁定窗口激活状态(注意耗费资源)
"dx.public.active.message": 此模式表示通过封锁系统消息来锁定窗口激活状态(注意耗费资源),必须在绑定前,让绑定窗口处于激活状态
"dx.public.disable.window.position": 此模式将锁定绑定窗口位置.不可与"dx.public.fake.window.min"共用
"dx.public.disable.window.size": 此模式将锁定绑定窗口,禁止改变大小. 不可与"dx.public.fake.window.min"共用
"dx.public.disable.window.minmax": 此模式将禁止窗口最大化和最小化,但是付出的代价是窗口同时也会被置顶. 不可与"dx.public.fake.window.min"共用.
"dx.public.fake.window.min": 此模式将允许目标窗口在最小化状态时,仍然能够像非最小化一样操作.. 另注意,此模式会导致任务栏顺序重排,所以如果是多开模式下,会看起来比较混乱,建议单开使用,多开不建议使用. 同时此模式不是万能的,有些情况下最小化以后图色会不刷新或者黑屏
"dx.public.hide.dll": 此模式将会隐藏目标进程的大漠插件,避免被检测..另外使用此模式前,请仔细做过测试,此模式可能会造成目标进程不稳定,出现崩溃。
"dx.public.active.api2": 此模式表示通过封锁系统API来锁定窗口激活状态. 部分窗口遮挡无法后台,需要这个属性
"dx.public.input.ime": 此模式是配合SendStringIme使用. 具体可以查看SendStringIme接口.
"dx.public.graphic.protect": 此模式可以保护dx图色不被恶意检测.同时对dx.keypad.api和dx.mouse.api也有保护效果
"dx.public.disable.window.show": 禁止目标窗口显示,这个一般用来配合dx.public.fake.window.min来使用
"dx.public.anti.api": 此模式可以突破部分窗口对后台的保护
"dx.public.km.protect": 此模式可以保护dx键鼠不被恶意检测.最好配合dx.public.anti.api一起使用. 此属性可能会导致部分后台功能失效
"dx.public.prevent.block": 绑定模式1 3 5 7 101 103下,可能会导致部分窗口卡死. 这个属性可以避免卡死
"dx.public.ori.proc": 此属性只能用在模式0 1 2 3和101下. 有些窗口在不同的界面下(比如登录界面和登录进以后的界面),键鼠的控制效果不相同. 那可以用这个属性来尝试让保持一致. 注意的是,这个属性不可以滥用,确保测试无问题才可以使用. 否则可能会导致后台失效.
"dx.public.down.cpu": 此模式可以配合DownCpu来降低目标进程CPU占用. 当图色方式降低CPU无效时,可以尝试此种方式. 需要注意的是,当使用此方式降低CPU时,会让图色方式降低CPU失效
"dx.public.focus.message": 当后台绑定后,后台无法正常在焦点窗口输入文字时,可以尝试加入此属性. 此属性会强制键盘消息发送到焦点窗口. 慎用此模式,此模式有可能会导致后台键盘在某些情况下失灵.
"dx.public.graphic.speed": 只针对图色中的dx模式有效.此模式会牺牲目标窗口的性能,来提高DX图色速度,尤其是目标窗口刷新很慢时,这个参数就很有用了.
"dx.public.memory": 让本对象突破目标进程防护,可以正常使用内存接口. 当用此方式使用内存接口时,内存接口的速度会取决于目标窗口的刷新率
"dx.public.inject.super": 突破某些难以绑定的窗口. 此属性仅对除了模式0和2的其他模式有效.
"dx.public.hack.speed": 类似变速齿轮,配合接口HackSpeed使用
params[5] int 模式,取值如下
"0": 推荐模式此模式比较通用,而且后台效果是最好的。
"2": 同模式0,如果模式0有崩溃问题,可以尝试此模式。
"101": 超级绑定模式. 可隐藏目标进程中的dm.dll.避免被恶意检测。
"103": 同模式101,如果模式101有崩溃问题,可以尝试此模式。
"11": 需要加载驱动,适合一些特殊的窗口,如果前面的无法绑定,可以尝试此模式. 此模式不支持32位系统。
"13": 需要加载驱动,适合一些特殊的窗口,如果前面的无法绑定,可以尝试此模式. 此模式不支持32位系统。

返回值:

返回值 说明
int 0:失败,1:成功

参考:

无,参考BindWindow

结果:

备注:

模式101 103在大部分窗口下绑定都没问题。但也有少数特殊的窗口,比如有很多子窗口的窗口,  
对于这种窗口,在绑定时,一定要把鼠标指向一个可以输入文字的窗口,比如一个文本框,  
最好能激活这个文本框,这样可以保证绑定的成功,如果返回值是0,可以用GetLastError获取信息。

DownCpu

函数说明:

降低目标窗口所在进程的CPU占用

函数体:

    int DownCpu(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 取值范围大于等于0 取值为0 表示关闭CPU优化. 这个值越大表示降低CPU效果越好.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口必须在绑定窗口成功以后调用,而且必须保证目标窗口可以支持dx.graphic.3d或者dx.graphic.3d.8或者dx.graphic.2d或者dx.graphic.2d.2或者dx.graphic.opengl或者dx.graphic.opengl.esv2方式截图,或者使用dx.public.down.cpu.否则降低CPU无效  
因为降低CPU是通过降低窗口刷新速度或者在系统消息循环增加延时来实现,所以注意,开启此功能以后会导致窗口刷新速度变慢.

EnableBind

函数说明:

设置是否暂时关闭或者开启后台功能. 默认是开启.  一般用在前台切换,或者脚本暂停和恢复时,可以让用户操作窗口.

函数体:

    int EnableBind(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 取值如下
"0": 全部关闭(图色键鼠都关闭,也就是说图色,键鼠都是前台,但是如果有指定dx.public.active.message时,在窗口前后台切换时,这个属性会失效)
"-1": 只关闭图色
"1": 开启(默认)
"5": 同0,也是全部关闭,但是这个模式下,就算窗口在前后台切换时,属性dx.public.active.message的效果也一样不会失效

返回值:

返回值 说明
int 0:失败,1:成功

参考:

    Elf elf = new Elf();
    elf.Reg(MyParam.REG_CODE,"ELF");//收费函数
    Object[] params = new Object[]{"","h"};
    int hwnd = Integer.parseInt(elf.execute(Window.class,WindowOperations.FindWindow,params)toString());
    logger.info("获取到句柄: {},执行绑定.",hwnd);
    params = new Object[]{hwnd,"normal","windows","windows",0};
    int res = Integer.parseInt(elf.execute(Background.class,BackgroundOperations.BindWindow,params)toString());
    logger.info("BindWindow :{}",res);
    Thread.sleep(1000);
    params = new Object[]{0};
    res = Integer.parseInt(elf.execute(Background.class,BackgroundOperations.EnableBind,params)toString());
    logger.info("切换成前台 :{}",res);

结果:

获取到句柄: 9177636,执行绑定.
BindWindow :1
切换成前台 :1

备注:

EnableFakeActive

函数说明:

设置是否开启后台假激活功能. 默认是关闭. 一般用不到. 除非有人有特殊需求,注意看备注

函数体:

    int EnableFakeActive(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0关闭,1开启

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口的含义并不是关闭或者开启窗口假激活功能(dx.public.active.api或者dx.public.active.message). 而是说有些时候,本来窗口没有激活并且在没有绑定的状态下,可以正常使用的功能,而在窗口绑定以后,并且窗口在非激活状态下,此时由于绑定的锁定导致无法使用. 那么,你就需要把你的部分代码用EnableFakeActive来保护起来。这样就让插件认为你的这段代码是在窗口激活状态下执行.
另外,此函数开启以后,有可能会让前台影响到后台. 所以如果不是特殊情况,最好是关闭.  开启这个还会把已经锁定的键盘鼠标(LockInput)强制解锁.有些时候,有人会故意利用这个前台影响后台的作用,做类似同步器的软件,那这个函数就很有作用了,还有一些窗口对消息检测比较严格,那么需要开启这个接口才可以后台操作,或者组合键操作

EnableIme

函数说明:

设置是否关闭绑定窗口所在进程的输入法

函数体:

    int EnableIme(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0关闭,1开启

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数必须在绑定后调用才有效果

EnableKeypadMsg

函数说明:

是否在使用dx键盘时开启windows消息.默认开启.

函数体:

    int EnableKeypadMsg(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0关闭,1开启

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口必须在绑定之后才能调用。特殊时候使用

EnableKeypadPatch

函数说明:

键盘消息发送补丁. 默认是关闭

函数体:

    int EnableKeypadPatch(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0关闭,1开启

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口必须在绑定之后才能调用。

EnableKeypadSync

函数说明:

键盘消息采用同步发送模式.默认异步

函数体:

    int EnableKeypadSync(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0关闭同步,1开启同步
params[1] int 单位是毫秒,表示同步等待的最大时间.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口必须在绑定之后才能调用。
有些时候,如果是异步发送,如果发送动作太快,中间没有延时,有可能下个动作会影响前面的.而用同步就没有这个担心.

EnableMouseMsg

函数说明:

是否在使用dx鼠标时开启windows消息.默认开启

函数体:

    int EnableMouseMsg(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:禁止,1:开启.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口必须在绑定之后才能调用

EnableMouseSync

函数说明:

鼠标消息采用同步发送模式.默认异步

函数体:

    int EnableMouseSync(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:禁止同步,1:开启同步.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口必须在绑定之后才能调用
异步发送,如果发送动作太快,中间没有延时(delay),有可能下个动作会影响前面的

EnableRealKeypad

函数说明:

键盘动作模拟真实操作,点击延时随机

函数体:

    int EnableRealKeypad(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭模拟,1:开启模拟.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口对KeyPress KeyPressChar KeyPressStr起作用。具体表现是键盘按下和弹起的间隔会在
当前设定延时的基础上,上下随机浮动50%. 假如设定的键盘延时是100,那么这个延时可能就是50-150之间的一个值.
设定延时的函数是 SetKeypadDelay

EnableRealMouse

函数说明:

鼠标动作模拟真实操作,带移动轨迹,以及点击延时随机

函数体:

    int EnableRealMouse(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭模拟,
1:开启模拟(直线模式),
2:开启模拟(曲线模式).
params[1] int 单位是毫秒. 表示在模拟鼠标移动轨迹时,每移动一次的时间间隔.这个值越大,鼠标移动越慢.
params[2] int 表示在模拟鼠标移动轨迹时,每移动一次的距离. 这个值越大,鼠标移动越快速.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口对LeftClick RightClick MiddleClick LeftDoubleClick起作用。具体表现是鼠标按下和弹起的间隔会在
当前设定延时的基础上,上下随机浮动50%. 假如设定的键盘延时是100,那么这个延时可能就是50-150之间的一个值.
设定延时的函数是 SetKeypadDelay

EnableSpeedDx

函数说明:

设置是否开启高速dx键鼠模式。 默认是关闭

函数体:

    int EnableSpeedDx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭,1:开启.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数开启的后果就是,所有dx键鼠操作将不会等待,适用于某些特殊的场合(比如避免窗口无响应导致宿主进程也卡死的问题).EnableMouseSync和EnableKeyboardSync开启以后,此函数就无效了.
此函数可能在部分窗口下会有副作用,谨慎使用!!

ForceUnBindWindow

函数说明:

强制解除绑定窗口,并释放系统资源

函数体:

    int ForceUnBindWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 要解除绑定的窗口句柄.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口一般用在BindWindow和BindWindowEx中,使用了模式1 3 5 7或者属性dx.public.hide.dll后,在线程或者进程结束后,没有正确调用UnBindWindow而导致下次绑定无法成功时,可以先调用这个函数强制解除绑定,并释放资源,再进行绑定.
此接口不可替代UnBindWindow. 只是用在非常时刻. 切记.一般情况下可以无条件的在BindWindow或者BindWindowEx之前调用一次此函数。保证此刻窗口处于非绑定状态
需要注意的是,此函数只可以强制解绑在同进程绑定的窗口.  不可在不同的进程解绑别的进程绑定的窗口.(会产生异常

GetBindWindow

函数说明:

获取当前对象已经绑定的窗口句柄. 无绑定返回0

函数体:

    int GetBindWindow()

参数列表:

无,传入null即可。

返回值:

返回值 说明
int 返回窗口句柄,无绑定返回0

参考:

    Elf elf = new Elf();
    int res = Integer.parseInt(elf.execute(Background.class,BackgroundOperations.GetBindWindow,null).toString());
    logger.info("res :{}" ,res);

结果:

res :0

备注:

GetFps

函数说明:

即时获取绑定窗口的fps. 

函数体:

    int GetFps()

参数列表:

无,传入null即可。

返回值:

返回值 说明
int fps

参考:

结果:

备注:

要想获取fps,那么图色模式必须是dx模式的其中一种.  比如dx.graphic.3d  dx.graphic.opengl等.

HackSpeed

函数说明:

对目标窗口设置加速功能(类似变速齿轮),必须在绑定参数中有dx.public.hack.speed时才会生效.

函数体:

    int HackSpeed(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 取值范围大于0. 默认是1.0 表示不加速,也不减速. 小于1.0表示减速,大于1.0表示加速. 精度为小数点后1位. 也就是说1.5 和 1.56其实是一样的.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口必须在绑定窗口成功以后调用,而且必须有参数dx.public.hack.speed. 不一定对所有窗口有效,具体自己测试

IsBind

函数说明:

判定指定窗口是否已经被后台绑定. (前台无法判定) 

函数体:

    int IsBind(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 要进行判断的窗口句柄

返回值:

返回值 说明
int 0:没绑定或者窗口不存在,1:已绑定

参考:

结果:

备注:

LockDisplay

函数说明:

锁定指定窗口的图色数据(不刷新)

函数体:

    int LockDisplay(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0 :关闭锁定
1 :开启锁定

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口只对图色为dx.graphic.3d  dx.graphic.3d.8 dx.graphic.2d  dx.graphic.2d.2有效

LockInput

函数说明:

禁止外部输入到指定窗口

函数体:

    int LockInput(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0 :关闭锁定
1 :开启锁定
2 :只锁定鼠标
3 :只锁定键盘
4 :同1,但当您发现某些特殊按键无法锁定时,比如(回车,ESC等),那就用这个模式,但此模式会让SendString函数后台失效,或者采用和SendString类似原理发送字符串的其他3方函数失效
5 :同3,但当您发现某些特殊按键无法锁定时,比如(回车,ESC等),那就用这个模式吧. 但此模式会让SendString函数后台失效,或者采用和SendString类似原理发送字符串的其他3方函数失效

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口只针对dx键鼠. 普通键鼠无效,有时候,绑定为dx2 鼠标模式时(或者没有锁定鼠标位置或状态时),在脚本处理过程中,在某个时候需要临时锁定外部输入,以免外部干扰,那么这个函数就非常有用  
锁定完以后,记得要解除锁定,否则外部永远都无法输入了,除非解除了窗口绑定

LockMouseRect

函数说明:

设置前台鼠标在屏幕上的活动范围

函数体:

    int LockMouseRect(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角x
params[1] int 左上角y
params[2] int 右下角x
params[3] int 右下角y

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

调用此函数后,一旦有窗口切换或者窗口移动的动作,那么限制立刻失效.
如果需要恢复,可以再调用此函数,并传入0,0,0,0即可
如果想一直限制鼠标范围在指定的窗口客户区域,那么你需要启动一个线程,并且时刻监视当前活动窗口,然后根据情况调用此函数限制鼠标范围

SetAero

函数说明:

降低目标窗口所在进程的CPU占用

函数体:

    int SetAero(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭,1:开启.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

如果您发现当图色后台为dx2 gdi dx3时,如果有发现目标窗口刷新速度过慢,那可以考虑关闭系统Aero

SetDisplayDelay

函数说明:

设置dx截图最长等待时间。内部默认是3000毫秒. 一般用不到调整这个

函数体:

    int SetDisplayDelay(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 等待时间,单位是毫秒。 注意这里不能设置的过小,否则可能会导致截图失败,从而导致图色函数和文字识别失败

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口仅对图色为dx.graphic.3d   dx.graphic.3d.8  dx.graphic.2d   dx.graphic.2d.2有效. 其他图色模式无效  
默认情况下,截图需要等待一个延时,超时就认为截图失败. 这个接口可以调整这个延时. 某些时候或许有用.比如当窗口图色卡死(这时获取图色一定都是超时),并且要判断窗口卡死,那么这个设置就很有用了  

SetDisplayRefreshDelay

函数说明:

设置opengl图色模式的强制刷新窗口等待时间. 内置为400毫秒

函数体:

    int SetDisplayRefreshDelay(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 等待时间,单位是毫秒。这个值越小,强制刷新的越频繁,相应的窗口可能会导致闪烁

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

慎用,如果因为窗口刷新过快导致截出来的图不是你想要的,可以用这个调整刷新延时。

SwitchBindWindow

函数说明:

在不解绑的情况下,切换绑定窗口.(必须是同进程窗口) 

函数体:

    int SwitchBindWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 需要切换过去的窗口句柄

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数一般用在绑定以后,窗口句柄改变了的情况。如果必须不解绑,那么此函数就很有用了

UnBindWindow

函数说明:

解除绑定窗口,并释放系统资源

函数体:

    int UnBindWindow(Object[] params)

参数列表:

无,传入null即可。

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

建议脚本结束时调用一下

图色

AppendPicAddr

函数说明:

对指定的数据地址和长度,组合成新的参数. FindPicMem FindPicMemE 以及FindPicMemEx专用

函数体:

    String DownCpu(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 老的地址描述串
params[1] int 数据地址
params[2] int 数据长度

返回值:

返回值 说明
String 新的地址描述串

参考:

结果:

备注:

请不要使用,原因不说了。

BGR2RGB

函数说明:

把BGR的颜色格式转换为RGB

函数体:

    String BGR2RGB(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int bgr格式的颜色字符串

返回值:

返回值 说明
String RGB格式的字符串

参考:

结果:

备注:

Capture

函数说明:

抓取指定区域(x1, y1, x2, y2)的图像,保存为file(24位位图)

函数体:

    int Capture(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int x1
params[1] int y1
params[2] int x2
params[3] int y2
params[4] String 文件保存全路径或文件名,如果是文件名则放到SetPath下

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

CaptureGif

函数说明:

抓取指定区域(x1, y1, x2, y2)的动画,保存为gif格式

函数体:

    int CaptureGif(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int x1
params[1] int y1
params[2] int x2
params[3] int y2
params[4] String 文件保存全路径或文件名,如果是文件名则放到SetPath下
params[5] int 动画间隔,单位毫秒。如果为0,表示只截取静态图片
params[6] int 总共截取多久的动画,单位毫秒

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

CaptureJpg

函数说明:

抓取指定区域(x1, y1, x2, y2)的动画,保存为jpg格式

函数体:

    int CaptureJpg(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int x1
params[1] int y1
params[2] int x2
params[3] int y2
params[4] String 文件保存全路径或文件名,如果是文件名则放到SetPath下
params[5] int jpg压缩比率(1-100) 越大图片质量越好

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

CapturePre

函数说明:

抓取上次操作的图色区域,保存为file(24位位图)

函数体:

    int CapturePre(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 保存的文件名,保存的地方一般为SetPath中设置的目录,当然这里也可以指定全路径名

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

要开启此函数,必须先调用EnableDisplayDebug

CmpColor

函数说明:

比较指定坐标点(x,y)的颜色

函数体:

    int CmpColor(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int x坐标
params[1] int y坐标
params[2] String 颜色字符串,可以支持偏色,多色,例如"ffffff-202020|000000-000000"这个表示白色偏色为202020,和黑色偏色为000000.颜色最多支持10种颜色组合. 注意,这里只支持RGB颜色
params[3] double 相似度(0.1-1.0)

返回值:

返回值 说明
int 0:匹配,1:不匹配

参考:

结果:

备注:

EnableDisplayDebug

函数说明:

开启图色调试模式,此模式会稍许降低图色和文字识别的速度.默认不开启.

函数体:

    int EnableDisplayDebug(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭,1:开启

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

调试用

EnableFindPicMultithread

函数说明:

当执行FindPic系列接口时,是否在条件满足下(查找的图片大于等于4),开启多线程查找。默认打开.

函数体:

    int EnableFindPicMultithread(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭,1:开启

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

如果担心开启多线程会引发占用大量CPU资源,那么可以考虑关闭此功能

EnableGetColorByCapture

函数说明:

允许调用GetColor GetColorBGR GetColorHSV 以及 CmpColor时,以截图的方式来获取颜色。 默认关闭.

函数体:

    int EnableGetColorByCapture(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭,1:开启

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

某些窗口上,可能GetColor会获取不到颜色,可以尝试此接口

FindColor

函数说明:

查找指定区域内的颜色,颜色格式"RRGGBB-DRDGDB",.

函数体:

    int FindColor(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000|aabbcc-202020".
params[5] double 相似度,取值范围0.1-1.0
params[6] int 查找方向,取值0-8,不做赘述.
params[7] int 变参指针,返回X坐标
params[8] int 变参指针,返回Y坐标

返回值:

返回值 说明
int 0:没找到,1:找到了

参考:

    Elf elf = new Elf();
    //针对变参指针,你只需要了解他的类型,值无所谓。
    Object[] params = new Object[]{0,0,1920,1080,"ffffff",1.0,0,0,0};
    int res = Integer.parseInt(elf.execute(Picture.class,PictureOperations.FindColor,params)toString());
    if (res == 1){
        //如果res是1,则说明找到了,这个时候直接用数组获取元素的方式即可
        logger.info("找到,x:{},y:{}",params[7],params[8]);
    }else{
        logger.info("没找到");
    }

结果:

找到,x:657,y:9

备注:

此处变参指针,你传递过来的值会变成新的值,需要注意,详情看参考。
查找方向
0: 从左到右,从上到下 
1: 从左到右,从下到上 
2: 从右到左,从上到下 
3: 从右到左,从下到上 
4:从中心往外查找
5: 从上到下,从左到右 
6: 从上到下,从右到左
7: 从下到上,从左到右
8: 从下到上,从右到左

FindColorBlock

函数说明:

查找指定区域内的颜色块,颜色格式"RRGGBB-DRDGDB"

函数体:

    int FindColorBlock(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000|aabbcc-202020".
params[5] double 相似度,取值范围0.1-1.0
params[6] int 在宽度为width,高度为height的颜色块中,符合color颜色的最小数量,这个颜色数量可以在综合工具的二值化区域中看到
params[7] int 颜色块的宽度
params[8] int 颜色块的高度
params[9] int 变参指针,返回X坐标
params[10] int 变参指针,返回Y坐标

返回值:

返回值 说明
int 0:没找到,1:找到了

参考:

结果:

备注:

FindColorBlockE

函数说明:

查找指定区域内的所有颜色块,颜色格式"RRGGBB-DRDGDB"

函数体:

    String FindColorBlockE(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000|aabbcc-202020".
params[5] double 相似度,取值范围0.1-1.0
params[6] int 在宽度为width,高度为height的颜色块中,符合color颜色的最小数量,这个颜色数量可以在综合工具的二值化区域中看到
params[7] int 颜色块的宽度
params[8] int 颜色块的高度

返回值:

返回值 说明
String 返回所有颜色块信息的坐标值,然后通过GetResultCount等接口来解析 (由于内存限制,返回的颜色数量最多为1800个左右)

参考:

结果:

备注:

FindColorE

函数说明:

查找指定区域内的颜色,颜色格式"RRGGBB-DRDGDB"

函数体:

    String FindColorE(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000|aabbcc-202020".
params[5] double 相似度,取值范围0.1-1.0
params[6] int 查找方向,取值0-8,不做赘述

返回值:

返回值 说明
String 返回X和Y坐标 形式如"x|y", 比如"100|200"

参考:

结果:

备注:

同FindColor,只是返回值变成了String,形如 679|234
查找方向
0: 从左到右,从上到下 
1: 从左到右,从下到上 
2: 从右到左,从上到下 
3: 从右到左,从下到上 
4:从中心往外查找
5: 从上到下,从左到右 
6: 从上到下,从右到左
7: 从下到上,从左到右
8: 从下到上,从右到左

FindColorEx

函数说明:

查找指定区域内的颜色,颜色格式"RRGGBB-DRDGDB"

函数体:

    String FindColorEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000|aabbcc-202020".
params[5] double 相似度,取值范围0.1-1.0
params[6] int 查找方向,取值0-8,不做赘述

返回值:

返回值 说明
String 返回X和Y坐标,可能有多个,形式如"x|y", 比如"100|200,200|300"

参考:

结果:

备注:

返回所有颜色信息的坐标值,然后通过GetResultCount等接口来解析 (由于内存限制,返回的颜色数量最多为1800个左右)
查找方向
0: 从左到右,从上到下 
1: 从左到右,从下到上 
2: 从右到左,从上到下 
3: 从右到左,从下到上 
4:从中心往外查找
5: 从上到下,从左到右 
6: 从上到下,从右到左
7: 从下到上,从左到右
8: 从下到上,从右到左

FindMulColor

函数说明:

查找指定区域内的所有颜色.

函数体:

    int FindMulColor(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000|aabbcc-202020".
params[5] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
int 0:没找到或者部分没找到 1:都找到

参考:

结果:

备注:

返回所有颜色信息的坐标值,然后通过GetResultCount等接口来解析 (由于内存限制,返回的颜色数量最多为1800个左右)

FindMultiColor

函数说明:

根据指定的多点查找颜色坐标.

函数体:

    int FindMultiColor(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String first_color,颜色 格式为"RRGGBB-DRDGDB",比如颜色格式为"RRGGBB-DRDGDB|RRGGBB-DRDGDB|…………",比如"123456-000000"
params[5] String offset_color,偏移颜色,可以支持任意多个点
params[6] double 相似度,取值范围0.1-1.0
params[7] int 查找方向
params[8] int 变参指针,返回first_color.X坐标
params[9] int 变参指针,返回first_color.Y坐标

返回值:

返回值 说明
int 0:没找到 1:找到

参考:

结果:

备注:

FindMultiColorE

函数说明:

根据指定的多点查找颜色坐标.

函数体:

    String FindMultiColorE(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String first_color,颜色 格式为"RRGGBB-DRDGDB",比如颜色格式为"RRGGBB-DRDGDB|RRGGBB-DRDGDB|…………",比如"123456-000000"
params[5] String offset_color,偏移颜色,可以支持任意多个点
params[6] double 相似度,取值范围0.1-1.0
params[7] int 查找方向

返回值:

返回值 说明
String 返回X和Y坐标 形式如"x|y", 比如"100|200"

参考:

结果:

备注:

FindMultiColorEx

函数说明:

根据指定的多点查找颜色坐标.

函数体:

    String FindMultiColorEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String first_color,颜色 格式为"RRGGBB-DRDGDB",比如颜色格式为"RRGGBB-DRDGDB|RRGGBB-DRDGDB|…………",比如"123456-000000"
params[5] String offset_color,偏移颜色,可以支持任意多个点
params[6] double 相似度,取值范围0.1-1.0
params[7] int 查找方向

返回值:

返回值 说明
String 返回所有颜色信息的坐标值,然后通过GetResultCount等接口来解析(由于内存限制,返回的坐标数量最多为1800个左右),形式如"x|y", 比如"100|200",多个用 , 隔开

参考:

结果:

备注:

FindPic

函数说明:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理,函数可以查找多个图片,只返回第一个找到的X Y坐标.

函数体:

    int FindPic(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
params[5] String 颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示). 如果这里的色偏是2位,表示使用灰度找图. 比如"20"
params[6] double 相似度,取值范围0.1-1.0
params[7] int 查找方向
params[8] int 变参指针,返回图片左上角的X坐标
params[9] int 变参指针,返回图片左上角的Y坐标

返回值:

返回值 说明
int 返回找到的图片的序号,从0开始索引.如果没找到返回-1

参考:

结果:

备注:

此函数常用,请注意变参指针的取值。
查找方向
0: 从左到右,从上到下  
1: 从左到右,从下到上  
2: 从右到左,从上到下  
3: 从右到左, 从下到上

FindPicE

函数说明:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理,函数可以查找多个图片,只返回第一个找到的X Y坐标.

函数体:

    String  FindPicE(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
params[5] String 颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示). 如果这里的色偏是2位,表示使用灰度找图. 比如"20"
params[6] double 相似度,取值范围0.1-1.0
params[7] int 查找方向

返回值:

返回值 说明
String 返回找到的图片序号(从0开始索引)以及X和Y坐标 形式如"index

参考:

结果:

备注:

查找方向
0: 从左到右,从上到下  
1: 从左到右,从下到上  
2: 从右到左,从上到下  
3: 从右到左, 从下到上  

FindPicEx

函数说明:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理,函数可以查找多个图片,并且返回所有找到的图像的坐标.

函数体:

    String  FindPicEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
params[5] String 颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示). 如果这里的色偏是2位,表示使用灰度找图. 比如"20"
params[6] double 相似度,取值范围0.1-1.0
params[7] int 查找方向

返回值:

返回值 说明
String 返回的是所有找到的坐标格式如下:"id,x,y|id,x,y..|id,x,y" (图片左上角的坐标)

参考:

结果:

备注:

比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的图片是图像序号为0的图片,坐标是(100,20),第二个是序号为2的图片,坐标(30,40)  
由于内存限制,返回的图片数量最多为1500个左右
可以使用函数conversionFindPicEx转换为一个Point对象的List.
查找方向
0: 从左到右,从上到下  
1: 从左到右,从下到上  
2: 从右到左,从上到下  
3: 从右到左, 从下到上  

FindPicExS

函数说明:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理,函数可以查找多个图片,并且返回所有找到的图像的坐标.

函数体:

    String  FindPicExS(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
params[5] String 颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示). 如果这里的色偏是2位,表示使用灰度找图. 比如"20"
params[6] double 相似度,取值范围0.1-1.0
params[7] int 查找方向

返回值:

返回值 说明
String 返回的是所有找到的坐标格式如下:"file,x,y|file,x,y..|file,x,y"

参考:

结果:

备注:

和FindPicEx相比,此函数只是返回值的id变成了文件名称。

FindPicMem,FindPicMemE,FindPicMemEx

函数比较特殊,涉及到内存指针,已经封装在内,如果有特殊需要可以使用。

FindPicS

函数说明:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理,函数可以查找多个图片,只返回第一个找到的X Y坐标.此函数同FindPic.只是返回值不同.

函数体:

    String FindPicS(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
params[5] String 颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示). 如果这里的色偏是2位,表示使用灰度找图. 比如"20"
params[6] double 相似度,取值范围0.1-1.0
params[7] int 查找方向
params[8] int 变参指针,返回图片左上角的X坐标
params[9] int 变参指针,返回图片左上角的Y坐标

返回值:

返回值 说明
String 返回找到的图片的文件名. 没找到返回长度为0的字符串.

参考:

结果:

备注:

此函数常用,请注意变参指针的取值。
查找方向
0: 从左到右,从上到下  
1: 从左到右,从下到上  
2: 从右到左,从上到下  
3: 从右到左, 从下到上

FindShape

函数说明:

查找指定的形状

函数体:

    String FindPicS(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String offset_color ,坐标偏移描述 可以支持任意多个点,格式为"x1|y1|e1,……xn|yn|en"
params[5] double 相似度,取值范围0.1-1.0
params[6] int 查找方向
params[7] int 变参指针,返回图片左上角的X坐标
params[8] int 变参指针,返回图片左上角的Y坐标

返回值:

返回值 说明
int 0:没找到 1:找到

参考:

结果:

备注:

此函数常用,请注意变参指针的取值。
查找方向
0: 从左到右,从上到下  
1: 从左到右,从下到上  
2: 从右到左,从上到下  
3: 从右到左, 从下到上

FindShapeE

函数说明:

查找指定的形状

函数体:

    int FindShapeE(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String offset_color ,坐标偏移描述 可以支持任意多个点,格式为"x1|y1|e1,……xn|yn|en"
params[5] double 相似度,取值范围0.1-1.0
params[6] int 查找方向

返回值:

返回值 说明
String 返回X和Y坐标 形式如"x|y", 比如"100|200"

参考:

结果:

备注:

查找方向
0: 从左到右,从上到下  
1: 从左到右,从下到上  
2: 从右到左,从上到下  
3: 从右到左, 从下到上

FindShapeEx

函数说明:

查找指定的形状

函数体:

    int FindShapeEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String offset_color ,坐标偏移描述 可以支持任意多个点,格式为"x1|y1|e1,……xn|yn|en"
params[5] double 相似度,取值范围0.1-1.0
params[6] int 查找方向

返回值:

返回值 说明
String 返回所有形状的坐标值,然后通过GetResultCount等接口来解析(由于内存限制,返回的坐标数量最多为1800个左右)

参考:

结果:

备注:

查找方向
0: 从左到右,从上到下  
1: 从左到右,从下到上  
2: 从右到左,从上到下  
3: 从右到左, 从下到上

FreePic

函数说明:

释放指定的图片,此函数不必要调用,除非你想节省内存

函数体:

    int FreePic(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 文件名比如"1.bmp|2.bmp|3.bmp" 等,可以使用通配符
".bmp" 这个对应了所有的bmp文件
"a?c
.bmp" 这个代表了所有第一个字母是a 第三个字母是c 第二个字母任意的所有bmp文件

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

GetAveHSV

函数说明:

获取范围(x1,y1,x2,y2)颜色的均值,返回格式"H.S.V"

函数体:

    String GetAveHSV(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标

返回值:

返回值 说明
String 颜色字符串

参考:

结果:

备注:

GetAveRGB

函数说明:

获取范围(x1,y1,x2,y2)颜色的均值,返回格式"RRGGBB"

函数体:

    String GetAveRGB(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标

返回值:

返回值 说明
String 颜色字符串

参考:

结果:

备注:

GetColor

函数说明:

获取(x,y)的颜色,颜色返回格式"RRGGBB"

函数体:

    String GetColor(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int X坐标
params[1] int Y坐标

返回值:

返回值 说明
String 颜色字符串(注意这里都是小写字符,和工具相匹配)

参考:

结果:

备注:

GetColorBGR

函数说明:

获取(x,y)的颜色,颜色返回格式"BBGGRR"

函数体:

    String GetColorBGR(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int X坐标
params[1] int Y坐标

返回值:

返回值 说明
String 颜色字符串(注意这里都是小写字符,和工具相匹配)

参考:

结果:

备注:

GetColorHSV

函数说明:

获取(x,y)的颜色,颜色返回格式"H.S.V"

函数体:

    String GetColorHSV(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int X坐标
params[1] int Y坐标

返回值:

返回值 说明
String 颜色字符串

参考:

结果:

备注:

GetColorNum

函数说明:

获取指定区域的颜色数量,颜色格式"RRGGBB-DRDGDB"

函数体:

    int GetColorNum(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] String 格式为"RRGGBB-DRDGDB"的颜色
params[5] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
int 颜色数量

参考:

结果:

备注:

GetPicSize

函数说明:

获取指定图片的尺寸,如果指定的图片已经被加入缓存,则从缓存中获取信息  
此接口也会把此图片加入缓存. (当图色缓存机制打开时,具体参考EnablePicCache)

函数体:

    String GetPicSize(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名

返回值:

返回值 说明
String 形式如 "w,h" 比如"30,20"

参考:

结果:

备注:

GetScreenData

函数说明:

获取指定区域的图像,用二进制数据的方式返回

函数体:

    int GetScreenData(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标

返回值:

返回值 说明
int 返回的是指定区域的二进制颜色数据地址,每个颜色是4个字节,表示方式为(00RRGGBB)

参考:

结果:

备注:

GetScreenData和GetScreenDataBmp并不推荐使用,因为单独使用用不了。

GetScreenDataBmp

函数说明:

获取指定区域的图像,用24位位图的数据格式返回,方便二次开发.(或者可以配合SetDisplayInput的mem模式)

函数体:

    int GetScreenDataBmp(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标

返回值:

返回值 说明
int 0:失败 1:成功

参考:

结果:

备注:

ImageToBmp

函数说明:

转换图片格式为24位BMP格式.

函数体:

    int ImageToBmp(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 要转换的图片名
params[1] String 要保存的BMP图片名

返回值:

返回值 说明
int 0:失败 1:成功

参考:

结果:

备注:

IsDisplayDead

函数说明:

判断指定的区域,在指定的时间内(秒),图像数据是否一直不变.(卡屏). (或者绑定的窗口不存在也返回1)

函数体:

    int IsDisplayDead(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 区域的左上X坐标
params[1] int 区域的左上Y坐标
params[2] int 区域的右下X坐标
params[3] int 区域的右下Y坐标
params[4] int 需要等待的时间,单位是秒

返回值:

返回值 说明
int 0:没有卡屏,图像数据在变化
1:卡屏. 图像数据在指定的时间内一直没有变化. 或者绑定的窗口不见了

参考:

结果:

备注:

此函数的原理是不停的截取指定区域的图像,然后比较,如果改变就立刻返回0,否则等待直到指定的时间到达
理性使用

IsDisplayDead

函数说明:

预先加载指定的图片,这样在操作任何和图片相关的函数时,将省去了加载图片的时间。调用此函数后,没必要一定要调用FreePic,插件自己会自动释放  
此函数不是必须调用的,所有和图形相关的函数只要调用过一次,图片会自动加入缓存  
如果想对一个已经加入缓存的图片进行修改,那么必须先用FreePic释放此图片在缓存中占用的内存,然后重新调用图片相关接口,就可以重新加载此图片

函数体:

    int IsDisplayDead(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名,可以使用通配符

返回值:

返回值 说明
int 0:失败
1:成功

参考:

结果:

备注:

如果在LoadPic后(图片名为相对路径时),又设置SetPath为别的目录,会导致加入缓存的图片失效,等于没加载.

LoadPicByte

函数说明:

预先加载指定的图片,这样在操作任何和图片相关的函数时,将省去了加载图片的时间。调用此函数后,没必要一定要调用FreePic,插件自己会自动释放  
此函数不是必须调用的,所有和图形相关的函数只要调用过一次,图片会自动加入缓存  
如果想对一个已经加入缓存的图片进行修改,那么必须先用FreePic释放此图片在缓存中占用的内存,然后重新调用图片相关接口,就可以重新加载此图片

函数体:

    int LoadPicByte(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int BMP图像首地址
params[1] int BMP图像大小
params[2] String 文件名,指定这个地址对应的图片名. 用于找图时使用

返回值:

返回值 说明
int 0:失败
1:成功

参考:

结果:

备注:

可以配合GetScreenDataBmp使用,慎用。

MatchPicName

函数说明:

根据通配符获取文件集合. 方便用于FindPic和FindPicEx

函数体:

    String MatchPicName(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名,可以使用通配符

返回值:

返回值 说明
String 返回的是通配符对应的文件集合,每个图片以|分割

参考:

结果:

备注:

RGB2BGR

函数说明:

把RGB的颜色格式转换为BGR

函数体:

    String RGB2BGR(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String rgb格式的颜色字符串

返回值:

返回值 说明
String BGR格式的字符串

参考:

结果:

备注:

SetExcludeRegion

函数说明:

设置图色,以及文字识别时,需要排除的区域.(支持所有图色接口,以及文字相关接口,但对单点取色,或者单点颜色比较的接口不支持)

函数体:

    int SetExcludeRegion(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 模式,取值如下
"0": 添加排除区域
"1": 设置排除区域的颜色,默认颜色是FF00FF
"2": 清空排除区域
params[1] String 根据mode的取值来决定
"0": 此参数指添加的区域,可以多个区域,用"|"相连. 格式为"x1,y1,x2,y2|....."
"1": 此参数为排除区域的颜色,"RRGGBB"
"2": 此参数无效

返回值:

返回值 说明
String 0:失败 1:成功

参考:

结果:

备注:

SetPicPwd

函数说明:

设置图片密码,如果图片本身没有加密,那么此设置不影响不加密的图片,一样正常使用

函数体:

    int SetPicPwd(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 图片密码

返回值:

返回值 说明
String 0:失败 1:成功

参考:

结果:

备注:

图片加解密,可以看看综合工具

键鼠

EnableMouseAccuracy

函数说明:

设置当前系统鼠标的精确度开关

函数体:

    int EnableMouseAccuracy(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭,1:开启,推荐关闭,这个东西要多难用有多难用

返回值:

返回值 说明
int 设置之前的精确度开关

参考:

结果:

备注:

GetCursorPos

函数说明:

设置当前系统鼠标的精确度开关

函数体:

    int GetCursorPos(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 变参指针,返回X坐标
params[1] int 变参指针,返回Y坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

获取鼠标特征码. 当BindWindow或者BindWindowEx中的mouse参数含有dx.mouse.cursor时  
获取到的是后台鼠标特征,否则是前台鼠标特征.

GetCursorShape

函数说明:

设置当前系统鼠标的精确度开关

函数体:

    String GetCursorShape(Object[] params)

参数列表:

无,传入null即可.

返回值:

返回值 说明
String 成功时,返回鼠标特征码,失败时,返回空的串

参考:

结果:

备注:

WIN7以及以上系统,必须在字体显示设置里把文字大小调整为默认(100%),否则特征码会变
特征码就是鼠标形状的代号,例如某游戏战斗中鼠标会变成一把剑,平时是一只小手。

GetCursorShapeEx

函数说明:

设置当前系统鼠标的精确度开关

函数体:

    String GetCursorShapeEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 获取鼠标特征码的方式. 和综合工具中的方式1 方式2对应. 方式1此参数值为0. 方式2此参数值为1.

返回值:

返回值 说明
String 成功时,返回鼠标特征码,失败时,返回空的串

参考:

结果:

备注:

WIN7以及以上系统,必须在字体显示设置里把文字大小调整为默认(100%),否则特征码会变

GetCursorSpot

函数说明:

获取鼠标热点位置,并不是鼠标坐标

函数体:

    String GetCursorSpot(Object[] params)

参数列表:

无,传入null即可.

返回值:

返回值 说明
String 成功时,返回形如"x,y"的字符串,失败时,返回空的串

参考:

结果:

备注:

GetKeyState

函数说明:

获取指定的按键状态.(前台信息,不是后台)

函数体:

    int GetKeyState(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 虚拟按键码

返回值:

返回值 说明
int 0:弹起,1:按下

参考:

结果:

备注:

GetMouseSpeed

函数说明:

获取系统鼠标的移动速度

函数体:

    String GetMouseSpeed(Object[] params)

参数列表:

无,传入null即可.

返回值:

返回值 说明
int 0:失败,否则就是鼠标速度

参考:

结果:

备注:

KeyDown

函数说明:

按住指定的虚拟键码

函数体:

    int KeyDown(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 虚拟按键码

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

KeyDownChar

函数说明:

按住指定的虚拟键

函数体:

    int KeyDownChar(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 字符串描述的键码. 大小写无所谓

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

KeyPress

函数说明:

按下指定的虚拟键码

函数体:

    int KeyPress(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 虚拟按键码

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

KeyPressChar

函数说明:

按下指定的虚拟键

函数体:

    int KeyPressChar(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 字符串描述的键码. 大小写无所谓

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

KeyPressStr

函数说明:

根据指定的字符串序列,依次按顺序按下其中的字符

函数体:

    int KeyPressStr(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 需要按下的字符串序列,比如"1234","abcd","7389,1462"等
params[1] int 每按下一个按键,需要延时多久.

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

KeyUp

函数说明:

弹起指定的虚拟键码

函数体:

    int KeyUp(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 虚拟按键码

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

KeyUpChar

函数说明:

弹起指定的虚拟键

函数体:

    int KeyUpChar(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 字符串描述的键码. 大小写无所谓

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

LeftClick

函数说明:

按下鼠标左键

函数体:

    int LeftClick(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

LeftDoubleClick

函数说明:

左键双击

函数体:

    int LeftDoubleClick(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

LeftDown

函数说明:

按住左键

函数体:

    int LeftDown(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

LeftUp

函数说明:

弹起左键

函数体:

    int LeftUp(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

MiddleClick

函数说明:

按下鼠标中键

函数体:

    int MiddleClick(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

MiddleDown

函数说明:

按住鼠标中键

函数体:

    int MiddleDown(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

MiddleUp

函数说明:

弹起鼠标中键

函数体:

    int MiddleUp(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

MoveR

函数说明:

鼠标相对于上次的位置移动rx,ry

函数体:

    int MoveR(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 相对于上次的X偏移
params[1] int 相对于上次的Y偏移

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

最好配合SetMouseSpeed和EnableMouseAccuracy函数来使用,因为DPI会影响最终结果。

MoveTo

函数说明:

鼠标移动到目的点(x,y)

函数体:

    int MoveTo(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int X坐标
params[1] int Y坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

MoveToEx

函数说明:

鼠标移动到目的范围内的任意一点

函数体:

    int MoveToEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int X坐标
params[1] int Y坐标
params[2] int 宽度(从x计算起)
params[3] int 高度(从y计算起)

返回值:

返回值 说明
String 返回要移动到的目标点. 格式为x,y

参考:

结果:

备注:

这个函数是移动到x,y,x+w,y+h范围内随机一个点,推荐使用。

RightClick

函数说明:

按下鼠标右键

函数体:

    int RightClick(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

RightDown

函数说明:

按住鼠标右键

函数体:

    int RightDown(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

RightUp

函数说明:

弹起鼠标右键

函数体:

    int RightUp(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetKeypadDelay

函数说明:

设置按键时,键盘按下和弹起的时间间隔。高级用户使用。某些窗口可能需要调整这个参数才可以正常按键

函数体:

    int SetKeypadDelay(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 取值如下
"normal": 对应normal键盘 默认内部延时为30ms
"windows": 对应windows键盘 默认内部延时为10ms
"dx ": 对应dx键盘 默认内部延时为50ms
params[1] int 延时,单位是毫秒

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数影响的接口有KeyPress

SetMouseDelay

函数说明:

设置鼠标单击或者双击时,鼠标按下和弹起的时间间隔。高级用户使用。某些窗口可能需要调整这个参数才可以正常点击。

函数体:

    int SetKeypadDelay(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 取值如下
"normal": 对应normal鼠标 默认内部延时为30ms
"windows": 对应windows鼠标 默认内部延时为10ms
"dx ": 对应dx鼠标 默认内部延时为40ms
params[1] int 延时,单位是毫秒

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数影响的接口有LeftClick RightClick MiddleClick LeftDoubleClick

SetMouseSpeed

函数说明:

设置系统鼠标的移动速度

函数体:

    int SetMouseSpeed(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 鼠标移动速度, 最小1,最大11. 居中为6. 推荐设置为6

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetSimMode

函数说明:

设置前台键鼠的模拟方式

函数体:

    int SetSimMode(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 取值如下
"0": 默认
"1": 硬件模拟
"2 ": 硬件模拟2(ps2)
"3 ": 硬件模拟3

返回值:

返回值 说明
int 0:插件没注册
1:成功
-1 :32位系统不支持
-2 : 驱动释放失败
-3 : 驱动加载失败.可能是权限不够
-10:设置失败
-7 : 系统版本不支持

参考:

结果:

备注:

除了模式0,其他方式需要加载驱动,所以调用进程必须有管理员权限  
加载驱动时,必须让安全软件放行. 否则模拟无效  
硬件模拟1,没有对键鼠的接口类型有任何限制(PS/2 USB接口)都可以模拟,甚至不插任何键鼠设备都可以模拟.
硬件模拟2(ps2),模式下的键盘基本是正常的,但鼠标兼容性很差,建议只适用此模式的键盘. 鼠标可以使用别的模式. 键盘和鼠标不要求必须插入真实的ps2设备.
硬件模拟3, 设置以后,必须手动按下需要模拟的键盘和鼠标,否则会卡住.直到按下为止. 此后,再次设置不需要重新按下键盘鼠标,直到系统重启. 这个模拟要求被指定的键盘和鼠标不可以中途插拔,会造成模拟失效.  另外,用模拟3后,最好不要调用MoveTo或者MoveToE接口,改为用MoveR自己实现MoveTo或者MoveToEx,否则可能会造成鼠标移动到屏幕左上角的问题.
此接口仅对本对象生效,实际上所有的接口都仅仅对本对象生效,除了DmGuard是全局的

WaitKey

函数说明:

等待指定的按键按下 (前台,不是后台)

函数体:

    int WaitKey(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 虚拟按键码,当此值为0,表示等待任意按键。 鼠标左键是1,鼠标右键时2,鼠标中键是4.
params[1] int 等待多久,单位毫秒. 如果是0,表示一直等待.

返回值:

返回值 说明
int 0:超时
1:指定的按键按下:(当vk_code为0时)
按下的按键码:(当vk_code为0时)

参考:

结果:

备注:

可能有三个返回值

WheelDown

函数说明:

滚轮向下滚

函数体:

    int WheelDown(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

WheelUp

函数说明:

滚轮向上滚

函数体:

    int WheelUp(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

窗口

ClientToScreen

函数说明:

把窗口坐标转换为屏幕坐标

函数体:

    int ClientToScreen(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 变参指针,窗口X坐标
params[2] int 变参指针,窗口Y坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

EnumProcess

函数说明:

根据指定进程名,枚举系统中符合条件的进程PID,并且按照进程打开顺序排序

函数体:

    String EnumProcess(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 进程名,比如qq.exe

返回值:

返回值 说明
String 返回所有匹配的进程PID,并按打开顺序排序,格式"pid1,pid2,pid3"

参考:

结果:

备注:

EnumWindow

函数说明:

根据指定条件,枚举系统中符合条件的窗口

函数体:

    String EnumWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 获得的窗口句柄是该窗口的子窗口的窗口句柄,取0时为获得桌面句柄
params[1] String 窗口标题. 此参数是模糊匹配
params[2] String 窗口类名. 此参数是模糊匹配
params[3] int 取值定义如下
"1 :" 匹配窗口标题,参数[1]有效
"2 :" 匹配窗口类名,参数[2]有效
"4 :" 只匹配指定父窗口的第一层子窗口
"8 :" 匹配父窗口为0的窗口,即顶级窗口
"16 :" 匹配可见的窗口
"32 :" 匹配出的窗口按照窗口打开顺序依次排列
这些值可以相加,比如4+8+16就是类似于任务管理器中的窗口列表

返回值:

返回值 说明
String 返回所有匹配的窗口句柄字符串,格式"hwnd1,hwnd2,hwnd3"

参考:

结果:

备注:

EnumWindowByProcess

函数说明:

根据指定进程以及其它条件,枚举系统中符合条件的窗口

函数体:

    String EnumWindowByProcess(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 进程映像名.比如(svchost.exe). 此参数是精确匹配,但不区分大小写
params[1] String 窗口标题. 此参数是模糊匹配
params[2] String 窗口类名. 此参数是模糊匹配
params[3] int 取值定义如下
"1 :" 匹配窗口标题,参数[1]有效
"2 :" 匹配窗口类名,参数[2]有效
"4 :" 只匹配指定映像的所对应的第一个进程. 可能有很多同映像名的进程,只匹配第一个进程的
"8 :" 匹配父窗口为0的窗口,即顶级窗口
"16 :" 匹配可见的窗口
"32 :" 匹配出的窗口按照窗口打开顺序依次排列
这些值可以相加,比如4+8+16就是类似于任务管理器中的窗口列表

返回值:

返回值 说明
String 返回所有匹配的窗口句柄字符串,格式"hwnd1,hwnd2,hwnd3"

参考:

结果:

备注:

同EnumWindow,参数[3]可以相加

EnumWindowByProcessId

函数说明:

根据指定进程以及其它条件,枚举系统中符合条件的窗口

函数体:

    String EnumWindowByProcessId(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 进程pid
params[1] String 窗口标题. 此参数是模糊匹配
params[2] String 窗口类名. 此参数是模糊匹配
params[3] int 取值定义如下
"1 :" 匹配窗口标题,参数[1]有效
"2 :" 匹配窗口类名,参数[2]有效
"8 :" 匹配父窗口为0的窗口,即顶级窗口
"16 :" 匹配可见的窗口

返回值:

返回值 说明
String 返回所有匹配的窗口句柄字符串,格式"hwnd1,hwnd2,hwnd3"

参考:

结果:

备注:

同EnumWindow,参数[3]可以相加

EnumWindowSuper

函数说明:

根据指定进程以及其它条件,枚举系统中符合条件的窗口

函数体:

    String EnumWindowSuper(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 查找串1,内容取决于参数[1]
params[1] String 取值如下
"0 :" 内容是标题
"1 :" 内容是程序名字
"2 :" 内容是类名
"3 :" 内容是程序路径.(不包含盘符,比如\windows\system32)
"4 :" 容是父句柄.(十进制表达的串)
"5 :" 内容是父窗口标题
"6 :" 内容是父窗口类名
"7 :" 内容是顶级窗口句柄.(十进制表达的串)
"8 :" 内容是顶级窗口标题
"9 :" 内容是顶级窗口类名
params[2] int 取值如下
"0 :" 精确判断
"1 :" 模糊判断
params[3] String 同参数[1]
params[4] String 同参数[2]
params[5] String 取值如下
"0 :" 不排序
"1 :" 对枚举出的窗口进行排序,按照窗口打开顺序

返回值:

返回值 说明
String 返回所有匹配的窗口句柄字符串,格式"hwnd1,hwnd2,hwnd3"

参考:

结果:

备注:

以两组条件类枚举窗口,参数[1]和参数[2]是一组,参数[3]和参数[4]是一组.

FindWindow

函数说明:

查找符合类名或者标题名的顶层可见窗口

函数体:

    int FindWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配
params[1] String 窗口标题,如果为空,则匹配所有.这里的匹配是模糊匹配

返回值:

返回值 说明
int 整形数表示的窗口句柄,没找到返回0

参考:

结果:

备注:

FindWindowByProcess

函数说明:

根据指定的进程名字,来查找可见窗口

函数体:

    int FindWindowByProcess(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 进程映像名.比如(svchost.exe). 此参数是精确匹配,但不区分大小写
params[1] String 窗口标题. 此参数是模糊匹配
params[2] String 窗口类名. 此参数是模糊匹配

返回值:

返回值 说明
int 整形数表示的窗口句柄,没找到返回0

参考:

结果:

备注:

FindWindowByProcessId

函数说明:

根据指定的进程Id,来查找可见窗口

函数体:

    int FindWindowByProcessId(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 进程pid
params[1] String 窗口标题. 此参数是模糊匹配
params[2] String 窗口类名. 此参数是模糊匹配

返回值:

返回值 说明
int 整形数表示的窗口句柄,没找到返回0

参考:

结果:

备注:

FindWindowEx

函数说明:

查找符合类名或者标题名的顶层可见窗口,如果指定了父窗口句柄,则在parent的第一层子窗口中查找.

函数体:

    int FindWindowEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 父窗口句柄,如果为空,则匹配所有顶层窗口
params[1] String 窗口标题. 此参数是模糊匹配
params[2] String 窗口类名. 此参数是模糊匹配

返回值:

返回值 说明
int 整形数表示的窗口句柄,没找到返回0

参考:

结果:

备注:

FindWindowSuper

函数说明:

根据两组设定条件来查找指定窗口

函数体:

    int FindWindowSuper(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 查找串1,内容取决于参数[1]
params[1] String 取值如下
"0 :" 内容是标题
"1 :" 内容是程序名字
"2 :" 内容是类名
"3 :" 内容是程序路径.(不包含盘符,比如\windows\system32)
"4 :" 容是父句柄.(十进制表达的串)
"5 :" 内容是父窗口标题
"6 :" 内容是父窗口类名
"7 :" 内容是顶级窗口句柄.(十进制表达的串)
"8 :" 内容是顶级窗口标题
"9 :" 内容是顶级窗口类名
params[2] int 取值如下
"0 :" 精确判断
"1 :" 模糊判断
params[3] String 同参数[1]
params[4] String 同参数[2]
params[5] int 取值如下
"0 :" 精确判断
"1 :" 模糊判断

返回值:

返回值 说明
int 整形数表示的窗口句柄,没找到返回0

参考:

结果:

GetClientRect

函数说明:

获取窗口客户区域在屏幕上的位置

函数体:

    int GetClientRect(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 变参指针,返回窗口客户区左上角X坐标
params[2] int 变参指针,返回窗口客户区左上角Y坐标
params[3] int 变参指针,返回窗口客户区右下角X坐标
params[4] int 变参指针,返回窗口客户区右下角Y坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

GetClientSize

函数说明:

获取窗口客户区域的宽度和高度

函数体:

    int GetClientSize(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 变参指针,宽度
params[2] int 变参指针,高度

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

GetForegroundFocus

函数说明:

获取顶层活动窗口中具有输入焦点的窗口句柄

函数体:

    int GetForegroundFocus(Object[] params)

参数列表:

返回值:

返回值 说明
int 返回整型表示的窗口句柄

参考:

结果:

备注:

GetForegroundWindow

函数说明:

获取顶层活动窗口

函数体:

    int GetForegroundWindow(Object[] params)

参数列表:

返回值:

返回值 说明
int 返回整型表示的窗口句柄

参考:

结果:

备注:

GetMousePointWindow

函数说明:

获取鼠标指向的可见窗口句柄

函数体:

    int GetMousePointWindow(Object[] params)

参数列表:

返回值:

返回值 说明
int 返回整型表示的窗口句柄

参考:

结果:

备注:

鼠标移动到游戏窗口,按下快捷键即可实现获取句柄和绑定。

GetPointWindow

函数说明:

获取给定坐标的可见窗口句柄

函数体:

    int GetPointWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 屏幕X坐标
params[1] int 屏幕Y坐标

返回值:

返回值 说明
int 返回整型表示的窗口句柄

参考:

结果:

备注:

GetProcessInfo

函数说明:

根据指定的pid获取进程详细信息,(进程名,进程全路径,CPU占用率(百分比),内存占用量(字节))

函数体:

    String GetProcessInfo(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 进程pid

返回值:

返回值 说明
int 格式"进程名|进程路径|cpu|内存"

参考:

结果:

备注:

有些时候有保护的时候,此函数返回内容会错误,那么此时可以尝试用memory保护盾来试试看.另外此接口调用会延迟1秒.

GetSpecialWindow

函数说明:

获取特殊窗口

函数体:

    String GetSpecialWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 取值定义如下
"0 :" 获取桌面窗口
"1 :" 获取任务栏窗口

返回值:

返回值 说明
String 以整型数表示的窗口句柄

参考:

结果:

备注:

GetWindow

函数说明:

获取给定窗口相关的窗口句柄

函数体:

    int GetWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 窗口句柄
params[0] int 取值定义如下
"0 :" 获取父窗口
"1 :" 获取第一个子窗口
"2 :" 获取First 窗口
"3 :" 获取Last窗口
"4 :" 获取下一个窗口
"5 :" 获取上一个窗口
"6 :" 获取拥有者窗口
"7 :" 获取顶层窗口

返回值:

返回值 说明
int 返回整型表示的窗口句柄

参考:

结果:

备注:

GetWindowClass

函数说明:

获取窗口的类名

函数体:

    String GetWindowClass(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄

返回值:

返回值 说明
String 窗口的类名

参考:

结果:

备注:

GetWindowProcessId

函数说明:

获取指定窗口所在的进程ID

函数体:

    int GetWindowProcessId(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄

返回值:

返回值 说明
int 返回整型表示的是进程ID

参考:

结果:

备注:

GetWindowProcessPath

函数说明:

获取指定窗口所在的进程的exe文件全路径

函数体:

    int GetWindowProcessPath(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄

返回值:

返回值 说明
String 返回字符串表示的是exe全路径名

参考:

结果:

备注:

GetWindowRect

函数说明:

获取窗口在屏幕上的位置

函数体:

    int GetWindowRect(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 变参指针,返回窗口左上角X坐标
params[2] int 变参指针,返回窗口左上角Y坐标
params[3] int 变参指针,返回窗口右下角X坐标
params[4] int 变参指针,返回窗口右下角Y坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

GetWindowState

函数说明:

获取指定窗口的一些属性

函数体:

    int GetWindowState(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 取值定义如下
"0 :" 判断窗口是否存在
"1 :" 判断窗口是否处于激活
"2 :" 判断窗口是否可见
"3 :" 判断窗口是否最小化
"4 :" 判断窗口是否最大化
"5 :" 判断窗口是否置顶
"6 :" 判断窗口是否无响应
"7 :" 判断窗口是否可用(灰色为不可用)
"8 :" 另外的方式判断窗口是否无响应,如果6无效可以尝试这个
"9 :" 判断窗口所在进程是不是64位

返回值:

返回值 说明
int 0:不满足条件,1:满足条件

参考:

结果:

备注:

GetWindowTitle

函数说明:

获取窗口的标题

函数体:

    int GetWindowTitle(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄

返回值:

返回值 说明
String 窗口的标题

参考:

结果:

备注:

MoveWindow

函数说明:

移动指定窗口到指定位置

函数体:

    int MoveWindow(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int X坐标
params[2] int Y坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

ScreenToClient

函数说明:

把屏幕坐标转换为窗口坐标

函数体:

    int ScreenToClient(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 变参指针,X坐标
params[2] int 变参指针,Y坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SendPaste

函数说明:

向指定窗口发送粘贴命令. 把剪贴板的内容发送到目标窗口

函数体:

    int SendPaste(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄,如果为0,则对当前激活的窗口发送

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SendString

函数说明:

向指定窗口发送文本数据

函数体:

    int SendString(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄,如果为0,则对当前激活的窗口发送
params[1] String 发送的文本数据

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

时候发送中文,可能会大部分机器正常,少部分会乱码。这种情况一般有两个可能
1. 系统编码没有设置为GBK
2. 目标程序里可能安装了改变当前编码的软件,比如常见的是输入法. (尝试卸载)

SendString2

函数说明:

向指定窗口发送文本数据

函数体:

    int SendString2(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄,如果为0,则对当前激活的窗口发送
params[1] String 发送的文本数据

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

如果SendString不能输入,可以尝试此接口
时候发送中文,可能会大部分机器正常,少部分会乱码。这种情况一般有两个可能
1. 系统编码没有设置为GBK
2. 目标程序里可能安装了改变当前编码的软件,比如常见的是输入法. (尝试卸载)

SendStringIme

函数说明:

向绑定的窗口发送文本数据.必须配合dx.public.input.ime属性

函数体:

    int SendStringIme(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 发送的文本数据

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SendStringIme2

函数说明:

利用真实的输入法,对指定的窗口输入文字.

函数体:

    int SendStringIme2(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 窗口句柄
params[1] String 发送的文本数据
params[2] int 取值如下
"0 :" 向hwnd的窗口输入文字(前提是必须先用模式200安装了输入法)
"1 :" 同模式0,如果由于保护无效,可以尝试此模式
"2 :" 如果由于保护无效,可以尝试此模式
"200 :" 向系统中安装输入法,多次调用没问题. 全局只用安装一次
"300 :" 卸载系统中的输入法. 全局只用卸载一次. 多次调用没关系

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

如果要同时对此窗口进行绑定,并且绑定的模式是1 3 5 7 101 103,那么您必须要在绑定之前,先执行加载输入法的操作. 否则会造成绑定失败!  
在后台输入时,如果目标窗口有判断是否在激活状态才接受输入文字,那么可以配合绑定窗口中的假激活属性来保证文字正常输入. 诸如此类. 基本上用这个没有输入不了的文字

SetClientSize

函数说明:

设置窗口客户区域的宽度和高度

函数体:

    int SetClientSize(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 宽度
params[2] int 高度

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetWindowSize

函数说明:

设置窗口的大小

函数体:

    int SetWindowSize(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 宽度
params[2] int 高度

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

窗口客户区域和窗口大小并不一样,请注意。

SetWindowState

函数说明:

设置窗口的状态

函数体:

    int SetWindowState(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 取值定义如下
"0 :" 关闭指定窗口
"1 :" 激活指定窗口
"2 :" 最小化指定窗口,但不激活
"3 :" 最小化指定窗口,并释放内存,但同时也会激活窗口.(释放内存可以考虑用FreeProcessMemory函数)
"4 :" 最大化指定窗口,同时激活窗口
"5 :" 恢复指定窗口 ,但不激活
"6 :" 隐藏指定窗口
"7 :" 显示指定窗口
"8 :" 置顶指定窗口
"9 :" 取消置顶指定窗口
"10 :" 禁止指定窗口
"11 :" 取消禁止指定窗口
"12 :" 恢复并激活指定窗口
"13 :" 强制结束窗口所在进程
"14 :" 闪烁指定的窗口
"15 :" 使指定的窗口获取输入焦点

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetWindowText

函数说明:

设置窗口的标题

函数体:

    int SetWindowText(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 标题

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetWindowTransparent

函数说明:

设置窗口的透明度

函数体:

    int SetWindowTransparent(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 透明度取值(0-255) 越小透明度越大 0为完全透明(不可见) 255为完全显示(不透明)

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此接口不支持WIN98

文字识别(大漠)

AddDict

函数说明:

给指定的字库中添加一条字库信息

函数体:

    int AddDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 库的序号,取值为0-99,目前最多支持100个字库
params[1] String 字库描述串

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数是向指定的字库所在的内存中添加,而不是往文件中添加. 添加以后立刻就可以用于文字识别。无须再SetDict如果要保存添加进去的字库信息,需要调用SaveDict

ClearDict

函数说明:

清空指定的字库  

函数体:

    int ClearDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 字库的序号,取值为0-99,目前最多支持100个字库

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数支持清空内存中的字库,而不是字库文件本身

EnableShareDict

函数说明:

允许当前调用的对象使用全局字库  
如果你的程序中对象太多,并且每个对象都用到了同样的字库,可以考虑用全局字库,这样可以节省大量内存.

函数体:

    int EnableShareDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0:关闭,1:打开

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

一旦当前对象开启了全局字库,那么所有的和文字识别,字库相关的接口,通通都认为是对全局字库的操作.如果所有对象都要需要全局字库,可以选一个主对象开启使用全局字库,并且设置好字库,其他对象只需要开启全局字库即可.  
注意,第一个开启全局字库,并且设置字库的主对象不可以被释放,并且此主对象在修改字库(SetDict AddDict ClearDict SetDictMem)时,其它任何对象都不可以对全局字库进行操作.也就是说,必须是设置好全局字库后,其它对象才可以开启全局字库.同时,设置好全局字库后,任何对象都不可以修改字库. 只能使用访问字库这样的接口(UseDict等)

FetchWord

函数说明:

根据指定的范围,以及指定的颜色描述,提取点阵信息,类似于大漠工具里的单独提取

函数体:

    String FetchWord(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 颜色格式串.注意,RGB和HSV,以及灰度格式都支持
params[5] String 待定义的文字,不能为空,且不能为关键符号"$"

返回值:

返回值 说明
int 识别到的点阵信息,可用于AddDict.如果失败,返回空

参考:

结果:

备注:

FindStr

函数说明:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述

函数体:

    int FindStr(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 待查找的字符串,可以是字符串组合,比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
params[5] String 颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串.
params[6] double 相似度,取值范围0.1-1.0
params[7] int 变参指针,返回X坐标没找到返回-1
params[8] int 变参指针,返回Y坐标没找到返回-1

返回值:

返回值 说明
int 返回字符串的索引 没找到返回-1, 比如"长安

参考:

结果:

备注:

FindStrE

函数说明:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述

函数体:

    String FindStrE(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 待查找的字符串,可以是字符串组合,比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
params[5] String 颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串.
params[6] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
String 返回字符串序号以及X和Y坐标,形式如"id|x|y", 比如"0|100|200",没找到时,id和X以及Y均为-1,"-1|-1|-1"

参考:

结果:

备注:

FindStrEx

函数说明:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述

函数体:

    String FindStrEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 待查找的字符串,可以是字符串组合,比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
params[5] String 颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串.
params[6] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
String 返回所有找到的坐标集合,格式如下:
"id,x0,y0|id,x1,y1|......|id,xn,yn"
比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的是序号为0的字符串,坐标是(100,20),第二个是序号为2的字符串,坐标(30,40)

参考:

结果:

备注:

FindStrExs

函数说明:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述

函数体:

    String FindStrExs(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 待查找的字符串,可以是字符串组合,比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
params[5] String 颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串.
params[6] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
String 返回所有找到的坐标集合,格式如下:
"str,x0,y0|str,x1,y1|......|str,xn,yn"
比如"长安,100,20|大雁塔,30,40" 表示找到了两个,第一个是长安 ,坐标是(100,20),第二个是大雁塔,坐标(30,40)

参考:

结果:

备注:

FindStrS

函数说明:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述  
此函数同FindStr,只是返回值不同

函数体:

    String FindStrExs(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 待查找的字符串,可以是字符串组合,比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
params[5] String 颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串.
params[6] double 相似度,取值范围0.1-1.0
params[7] int 变参指针,返回X坐标没找到返回-1
params[8] int 变参指针,返回Y坐标没找到返回-1

返回值:

返回值 说明
String 返回找到的字符串. 没找到的话返回长度为0的字符串.

参考:

结果:

备注:

变参指针

FindStrFast

参考FindStr

FindStrFastE

参考FindStrE

FindStrFastEx

参考FindStrEx

FindStrFastExs

参考FindStrExs

FindStrFastS

参考FindStrS

FindStrWithFont

函数说明:

同FindStr,但是不使用SetDict设置的字库,而利用系统自带的字库,速度比FindStr稍慢

函数体:

    int FindStrWithFont(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 待查找的字符串,可以是字符串组合,比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
params[5] String 颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串.
params[6] double 相似度,取值范围0.1-1.0
params[7] String 系统字体名,比如"宋体"
params[8] int 系统字体尺寸,这个尺寸一定要以大漠综合工具获取的为准
params[9] int 字体类别 取值可以是以下值的组合,比如1+2+4+8,2+4. 0表示正常字体
"1 :" 粗体
"2 :" 斜体
"4 :" 下划线
"8 :" 删除线
params[10] int 变参指针,返回X坐标没找到返回-1
params[11] int 变参指针,返回Y坐标没找到返回-1

返回值:

返回值 说明
int 返回字符串的索引 没找到返回-1, 比如"长安

参考:

结果:

备注:

变参指针

FindStrWithFontE

函数说明:

同FindStr,但是不使用SetDict设置的字库,而利用系统自带的字库,速度比FindStr稍慢

函数体:

    String FindStrWithFontE(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 待查找的字符串,可以是字符串组合,比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
params[5] String 颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串.
params[6] double 相似度,取值范围0.1-1.0
params[7] String 系统字体名,比如"宋体"
params[8] int 系统字体尺寸,这个尺寸一定要以大漠综合工具获取的为准
params[9] int 字体类别 取值可以是以下值的组合,比如1+2+4+8,2+4. 0表示正常字体
"1 :" 粗体
"2 :" 斜体
"4 :" 下划线
"8 :" 删除线

返回值:

返回值 说明
String 返回字符串序号以及X和Y坐标,形式如"id|x|y", 比如"0|100|200",没找到时,id和X以及Y均为-1,"-1|-1|-1"

参考:

结果:

备注:

FindStrWithFontEx

函数说明:

同FindStr,但是不使用SetDict设置的字库,而利用系统自带的字库,速度比FindStr稍慢

函数体:

    String FindStrWithFontEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 待查找的字符串,可以是字符串组合,比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
params[5] String 颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串.
params[6] double 相似度,取值范围0.1-1.0
params[7] String 系统字体名,比如"宋体"
params[8] int 系统字体尺寸,这个尺寸一定要以大漠综合工具获取的为准
params[9] int 字体类别 取值可以是以下值的组合,比如1+2+4+8,2+4. 0表示正常字体
"1 :" 粗体
"2 :" 斜体
"4 :" 下划线
"8 :" 删除线

返回值:

返回值 说明
String 返回所有找到的坐标集合,格式如下:
"id,x0,y0|id,x1,y1|......|id,xn,yn"
比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的是序号为0的字符串,坐标是(100,20),第二个是序号为2的字符串,坐标(30,40)

参考:

结果:

备注:

GetDict

函数说明:

获取指定字库中指定条目的字库信息

函数体:

    String GetDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 字库序号(0-99)
params[1] int 字库条目序号(从0开始计数,数值不得超过指定字库的字库上限

返回值:

返回值 说明
String 返回字库条目信息. 失败返回空串

参考:

结果:

备注:

GetDictCount

函数说明:

获取指定的字库中的字符数量

函数体:

    int GetDictCount(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 字库序号(0-99)

返回值:

返回值 说明
int 字库数量

参考:

结果:

备注:

GetDictInfo

函数说明:

根据指定的文字,以及指定的系统字库信息,获取字库描述信息

函数体:

    String GetDictInfo(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 需要获取的字符串
params[1] String 系统字体名,比如"宋体"
params[2] int 字体类别 取值可以是以下值的组合,比如1+2+4+8,2+4. 0表示正常字体
"1 :" 粗体
"2 :" 斜体
"4 :" 下划线
"8 :" 删除线

返回值:

返回值 说明
String 返回字库信息,每个字符的字库信息用"|"来分割

参考:

结果:

备注:

GetNowDict

函数说明:

获取当前使用的字库序号(0-99)

函数体:

    int GetNowDict(Object[] params)

参数列表:

返回值:

返回值 说明
int 字库序号(0-99)

参考:

结果:

备注:

GetResultCount

函数说明:

对插件部分接口的返回值进行解析,并返回ret中的坐标个数

函数体:

    int GetResultCount(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 部分接口的返回串

返回值:

返回值 说明
int 返回ret中的坐标个数

参考:

结果:

备注:

GetResultPos

函数说明:

对插件部分接口的返回值进行解析,并根据指定的第index个坐标,返回具体的值

函数体:

    int GetResultPos(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 部分接口的返回串
params[1] int 第几个坐标
params[2] int 变参指针,返回X坐标
params[3] int 变参指针,返回X坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

GetWordResultCount

函数说明:

在使用GetWords进行词组识别以后,可以用此接口进行识别词组数量的计算

函数体:

    int GetWordResultCount(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String GetWords接口调用以后的返回值

返回值:

返回值 说明
int

参考:

结果:

备注:

GetWordResultPos

函数说明:

在使用GetWords进行词组识别以后,可以用此接口进行识别各个词组的坐标

函数体:

    int GetWordResultPos(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String GetWords的返回值
params[1] int 表示第几个词组
params[2] int 变参指针,返回X坐标
params[3] int 变参指针,返回X坐标

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

GetWordResultStr

函数说明:

在使用GetWords进行词组识别以后,可以用此接口进行识别各个词组的内容

函数体:

    String GetWordResultStr(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String GetWords的返回值
params[1] int 表示第几个词组

返回值:

返回值 说明
String 返回的第params[1]个词组内容

参考:

结果:

备注:

GetWords

函数说明:

根据指定的范围,以及设定好的词组识别参数(一般不用更改,除非你真的理解了)
识别这个范围内所有满足条件的词组. 比较适合用在未知文字的情况下,进行不定识别

函数体:

    String GetWords(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 颜色格式串.注意,RGB和HSV,以及灰度格式都支持
params[5] double 相似度 0.1-1.0

返回值:

返回值 说明
String 识别到的格式串,要用到专用函数来解析

参考:

结果:

备注:

GetWordsNoDict

函数说明:

根据指定的范围,以及设定好的词组识别参数(一般不用更改,除非你真的理解了)
识别这个范围内所有满足条件的词组. 这个识别函数不会用到字库。只是识别大概形状的位置

函数体:

    String GetWordsNoDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 颜色格式串.注意,RGB和HSV,以及灰度格式都支持

返回值:

返回值 说明
String 识别到的格式串,要用到专用函数来解析

参考:

结果:

备注:

Ocr

函数说明:

识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(0.1-1.0),这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!

函数体:

    String Ocr(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 颜色格式串.注意,RGB和HSV,以及灰度格式都支持
params[5] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
String 返回识别到的字符串

参考:

结果:

备注:

慎用。

OcrEx

函数说明:

识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(0.1-1.0),这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!
这个函数可以返回识别到的字符串,以及每个字符的坐标

函数体:

    String OcrEx(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 颜色格式串.注意,RGB和HSV,以及灰度格式都支持
params[5] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
String 返回识别到的字符串 格式如 "字符0$x0$y0|…|字符n$xn$yn"

参考:

结果:

备注:

慎用。

OcrExOne

函数说明:

识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(0.1-1.0),这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!
这个函数可以返回识别到的字符串,以及每个字符的坐标  
这个函数可以返回识别到的字符串,以及每个字符的坐标.这个同OcrEx,另一种返回形式

函数体:

    String OcrExOne(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 颜色格式串.注意,RGB和HSV,以及灰度格式都支持
params[5] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
String 返回识别到的字符串 格式如 "识别到的信息|x0,y0|…|xn,yn"

参考:

结果:

备注:

慎用。

OcrInFile

函数说明:

识别位图中区域(x1,y1,x2,y2)的文字

函数体:

    String OcrInFile(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 左上角X坐标
params[1] int 左上角Y坐标
params[2] int 右下角X坐标
params[3] int 右下角Y坐标
params[4] String 图片文件名
params[5] String 颜色格式串.注意,RGB和HSV,以及灰度格式都支持
params[6] double 相似度,取值范围0.1-1.0

返回值:

返回值 说明
String 返回识别到的字符串

参考:

结果:

备注:

SaveDict

函数说明:

识别位图中区域(x1,y1,x2,y2)的文字

函数体:

    int SaveDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 字库索引序号 取值为0-99对应100个字库
params[1] String 文件名

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetColGapNoDict

函数说明:

在不使用字库进行词组识别前,可设定文字的列距,默认列距是1

函数体:

    int SetColGapNoDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 文字列距

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetDict

函数说明:

设置字库文件

函数体:

    int SetDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 字库的序号,取值为0-99,目前最多支持100个字库
params[1] String 字库文件名

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数速度很慢,全局初始化时调用一次即可,切换字库用UseDict

SetDictMem

函数说明:

从内存中设置字库

函数体:

    int SetDictMem(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 字库的序号,取值为0-99,目前最多支持100个字库
params[1] int 数据地址
params[2] int 字库长度

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数速度很慢,全局初始化时调用一次即可,切换字库用UseDict,此函数不支持加密的内存字库

SetDictPwd

函数说明:

设置字库的密码,在SetDict前调用,目前的设计是,所有字库通用一个密码

函数体:

    int SetDictPwd(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 字库密码

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

如果使用了多字库,所有字库的密码必须一样. 此函数必须在SetDict之前调用,否则会解密失败

SetExactOcr

函数说明:

在使用文字识别功能前,设定是否开启精准识别

函数体:

    int SetExactOcr(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0 表示关闭精准识别 1 表示关闭

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetMinColGap

函数说明:

在识别前,如果待识别区域有多行文字,可以设定列间距,默认的列间距是0,根据情况设定,可以提高识别精度。一般不用设定

函数体:

    int SetMinColGap(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 最小列间距

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此设置如果不为0,那么将不能识别连体字 慎用

SetMinRowGap

函数说明:

识别前,如果待识别区域有多行文字,可以设定行间距,默认的行间距是1,

函数体:

    int SetMinRowGap(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 最小行间距

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetRowGapNoDict

函数说明:

在不使用字库进行词组识别前,可设定文字的行距,默认行距是1

函数体:

    int SetRowGapNoDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 文字行距

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetWordGap

函数说明:

在识别词组前,可设定词组间的间隔,默认的词组间隔是5

函数体:

    int SetWordGap(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 文字行距

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetWordGapNoDict

函数说明:

在不使用字库进行词组识别前,可设定词组间的间隔,默认的词组间隔是5

函数体:

    int SetWordGapNoDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 单词间距

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetWordLineHeight

函数说明:

在识别词组前,可设定文字的平均行高,默认的词组行高是10

函数体:

    int SetWordLineHeight(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 行高

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

SetWordLineHeightNoDict

函数说明:

在不使用字库进行词组识别前,可设定文字的平均行高,默认的词组行高是10

函数体:

    int SetWordLineHeightNoDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 行高

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

UseDict

函数说明:

表示使用哪个字库文件进行识别(index范围:0-99),再次调用可以修改。

函数体:

    int UseDict(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 字库编号(0-99)

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

文字识别(PaddleOCR)

介绍

PaddlePaddle

百度开源深度学习框架,感兴趣的可以深入研究一下. 

DJL

这个是我目前发现比较好用的java深度学习框架。

示例

两个项目文件夹,一个是PaddleOCR逻辑项目代码,一个是inference推理/预测模型。
将上述两个文件夹放置于你的项目所在同级目录。
    Ocr ocr = new Ocr();
    System.out.println(ocr.DoFast("image.bmp"));

构造函数:

    public Ocr(){}
    // 使用这个构造函数会初始化paddle所需文件的位置默认为当前项目所在的同级目录下
    public Ocr(String paddle_ocr_project_path){}
    // 使用这个构造函数来指定化paddle所需文件的位置
    public Ocr(boolean draw_pic,boolean use_gpu){}
    //使用这个构造函数来指定化paddle运行参数,第一个是识别结束后保存图片,第二个是使用独立显卡预测  
    //本文档使用的方式均默认cpu预测,预测会使cpu占用率较高,并且安装脚本里面也是默认安装cpu二进制文件  
    //有兴趣的请重写安装文件并打开use_gpu即可
    public Ocr(String paddle_ocr_project_path,boolean draw_pic,boolean use_gpu){}

DoFast

这个方法要求图片比较简单,最好是连续的,不要是分散的文字。返回结果为String,即识别到的文字,只有一个,不带定位信息。

Do

用于识别比较复杂的图片,返回的是一个OcrResult对象,包含识别到的文字,相似度,耗费时间,坐标。

例子

Java离线的Ocr实在没找到很好的替代品,只有如此暂时使用了,实际使用时多多测试,图片识别效果如何,合理运用。

安装脚本(windows)

PaddleOCR
Python_install
inference

1 下载上述三个文件,并解压,其中PaddleOCR和inference推荐解压放置在项目所在同级目录
2 Python_install解压后,右键以管理员方式运行install.bat,完成后再右键以管理员方式运行del.bat.  
3 打开CMD窗口输入python看看是不是已经能打印python的版本了(3.7.9).
4 使用以下命令测试ocr
python C:\Users\sun\Desktop\PaddleOCR\tools\infer\predict_system.py --image_dir=C:\Users\sun\Desktop\test3.png --det_model_dir=C:\Users\sun\Desktop\inference\ch_ppocr_server_v2.0_det_infer --rec_model_dir=C:\Users\sun\Desktop\inference\ch_ppocr_server_v2.0_rec_infer --cls_model_dir=C:\Users\sun\Desktop\inference\ch_ppocr_mobile_v2.0_cls_infer --rec_char_dict_path=C:\Users\sun\Desktop\PaddleOCR\ppocr\utils\ppocr_keys_v1.txt  --use_angle_cls=True --use_space_char=True --use_gpu=false --draw_pic=false
记得替换自己的路径。
文件很大,因为paddlepaddle的依赖我在本机已经安装好了,python里面也包含了一系列插件包,使用时可以java调用bat来安装即可。

文件

CopyFile

函数说明:

拷贝文件

函数体:

    int CopyFile(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 原始文件名
params[1] String 目标文件名
params[2] int 0:存在不覆盖 1:存在要覆盖

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

文件名全都可以是全路径,否则就是全局路径设置的路径。

CreateFolder

函数说明:

创建指定目录

函数体:

    int CreateFolder(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 目录名

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

可以是全路径,否则就是全局路径设置的路径。

DecodeFile

函数说明:

解密指定的文件

函数体:

    int DecodeFile(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名
params[1] String 密码

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

如果此文件没加密,调用此函数不会有任何效果

DeleteFile

函数说明:

删除指定的文件

函数体:

    int DeleteFile(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

DeleteFolder

函数说明:

删除指定的文件夹

函数体:

    int DeleteFolder(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 目录名

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

DeleteIni

函数说明:

删除指定的ini小节

函数体:

    int DeleteIni(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 小节名
params[1] String 变量名. 如果这个变量为空串,则删除整个section小节
params[2] String ini文件名

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数是多线程安全的. 多线程同时读写同个文件不会造成文件错乱

DeleteIniPwd

函数说明:

删除指定的ini小节,支持加密文件

函数体:

    int DeleteIniPwd(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 小节名
params[1] String 变量名. 如果这个变量为空串,则删除整个section小节
params[2] String ini文件名
params[4] String 密码

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

此函数是多线程安全的. 多线程同时读写同个文件不会造成文件错乱
如果此文件没加密,调用此函数会自动加密

DownloadFile

函数说明:

从internet上下载一个文件

函数体:

    int DownloadFile(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 下载的url地址
params[1] String 要保存的文件名
params[2] String 连接超时时间,单位是毫秒.

返回值:

返回值 说明
int 1:成功 -1:网络连接失败 -2:写入文件失败

参考:

结果:

备注:

EncodeFile

函数说明:

加密指定的文件

函数体:

    int EncodeFile(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名
params[1] String 密码

返回值:

返回值 说明
int 0:失败,1:成功

参考:

结果:

备注:

如果此文件已经加密,调用此函数不会有任何效果

EnumIniKey

函数说明:

根据指定的ini文件以及section,枚举此section中所有的key名

函数体:

    String EnumIniKey(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 小节名
params[1] String ini文件名

返回值:

返回值 说明
String 每个key用"|"来连接,如果没有key,则返回空字符串. 比如"aaa|bbb|ccc"

参考:

结果:

备注:

此函数无法枚举没有section的key

EnumIniKey

函数说明:

支持加密文件
根据指定的ini文件以及section,枚举此section中所有的key名

函数体:

    String EnumIniKey(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 小节名
params[1] String ini文件名
params[2] String 密码

返回值:

返回值 说明
String 每个key用"|"来连接,如果没有key,则返回空字符串. 比如"aaa|bbb|ccc"

参考:

结果:

备注:

此函数无法枚举没有section的key,如果文件没加密,也可以正常读取

EnumIniSection

函数说明:

根据指定的ini文件,枚举此ini中所有的Section(小节名)

函数体:

    String EnumIniSection(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String ini文件名

返回值:

返回值 说明
String 每个key用"|"来连接,如果没有key,则返回空字符串. 比如"aaa|bbb|ccc"

参考:

结果:

备注:

EnumIniSectionPwd

函数说明:

根据指定的ini文件,枚举此ini中所有的Section(小节名),支持加密

函数体:

    String EnumIniSectionPwd(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String ini文件名
params[1] String 密码

返回值:

返回值 说明
String 每个key用"|"来连接,如果没有key,则返回空字符串. 比如"aaa|bbb|ccc"

参考:

结果:

备注:

如果文件没加密,也可以正常读取

GetFileLength

函数说明:

获取指定的文件长度

函数体:

    int GetFileLength(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名

返回值:

返回值 说明
int 文件长度(字节数)

参考:

结果:

备注:

如果文件没加密,也可以正常读取

GetRealPath

函数说明:

获取指定文件或目录的真实路径

函数体:

    String GetRealPath(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 路径名,可以是文件路径,也可以是目录. 这里必须是全路径

返回值:

返回值 说明
String 真实路径,如果失败,返回空字符串

参考:

结果:

备注:

这个功能可以获取到路径中有符号链接之后的,真实路径

IsFileExist

函数说明:

判断指定文件是否存在

函数体:

    int IsFileExist(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名

返回值:

返回值 说明
int 0 : 不存在 1 : 存在

参考:

结果:

备注:

IsFolderExist

函数说明:

判断指定目录是否存在

函数体:

    int IsFolderExist (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 目录名

返回值:

返回值 说明
int 0 : 不存在 1 : 存在

参考:

结果:

备注:

MoveFile

函数说明:

移动文件

函数体:

    int MoveFile (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 原始文件名
params[1] String 目标文件名

返回值:

返回值 说明
int 0 : 成功 1 : 失败

参考:

结果:

备注:

ReadFile

函数说明:

从指定的文件读取内容

函数体:

    String ReadFile (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件名

返回值:

返回值 说明
String 文件内容

参考:

结果:

备注:

ReadIni

函数说明:

从Ini中读取指定信息

函数体:

    String ReadIni (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 小节名
params[1] String 变量名
params[2] String ini文件名

返回值:

返回值 说明
String 字符串形式表达的读取到的内容

参考:

结果:

备注:

ReadIni

函数说明:

从Ini中读取指定信息

函数体:

    String ReadIni (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 小节名
params[1] String 变量名
params[2] String ini文件名

返回值:

返回值 说明
String 字符串形式表达的读取到的内容

参考:

结果:

备注:

SelectDirectory

函数说明:

弹出选择文件夹对话框,并返回选择的文件夹

函数体:

    String SelectDirectory (Object[] params)

参数列表:

返回值:

返回值 说明
String 选择的文件夹全路径

参考:

结果:

备注:

SelectFile

函数说明:

弹出选择文件夹对话框,并返回选择的文件全路径

函数体:

    String SelectFile (Object[] params)

参数列表:

返回值:

返回值 说明
String 选择的文件全路径

参考:

结果:

备注:

WriteFile

函数说明:

向指定文件追加字符串

函数体:

    int WriteFile (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 文件
params[1] String 写入的字符串

返回值:

返回值 说明
int 0:失败 1:成功

参考:

结果:

备注:

WriteIni

函数说明:

向指定的Ini写入信息

函数体:

    int WriteIni (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 小节名
params[1] String 变量名
params[2] String 变量内容
params[3] String ini文件名

返回值:

返回值 说明
int 0:失败 1:成功

参考:

结果:

备注:

WriteIniPwd

函数说明:

向指定的Ini写入信息,支持加密文件

函数体:

    int WriteIniPwd (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 小节名
params[1] String 变量名
params[2] String 变量内容
params[3] String ini文件名
params[4] String 密码

返回值:

返回值 说明
int 0:失败 1:成功

参考:

结果:

备注:

如果此文件没加密,调用此函数会自动加密

防护盾

Foobar

CreateFoobarCustom

函数说明:

根据指定的位图创建一个自定义形状的窗口

函数体:

    int CreateFoobarCustom (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄,如果此值为0,那么就在桌面创建此窗口
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] String 位图名字
params[4] String 透明色(RRGGBB)
params[5] double 透明色的相似值 0.1-1.0

返回值:

返回值 说明
int 创建成功的窗口句柄

参考:

结果:

备注:

foobar不能在本进程窗口内创建

CreateFoobarEllipse

函数说明:

创建一个椭圆窗口

函数体:

    int CreateFoobarEllipse (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄,如果此值为0,那么就在桌面创建此窗口
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] int 矩形区域的宽度
params[4] int 矩形区域的宽度

返回值:

返回值 说明
int 创建成功的窗口句柄

参考:

结果:

备注:

foobar不能在本进程窗口内创建

CreateFoobarRect

函数说明:

创建一个矩形窗口

函数体:

    int CreateFoobarRect (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄,如果此值为0,那么就在桌面创建此窗口
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] int 矩形区域的宽度
params[4] int 矩形区域的宽度

返回值:

返回值 说明
int 创建成功的窗口句柄

参考:

结果:

备注:

foobar不能在本进程窗口内创建

CreateFoobarRoundRect

函数说明:

创建一个圆角矩形窗口

函数体:

    int CreateFoobarRoundRect (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄,如果此值为0,那么就在桌面创建此窗口
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] int 矩形区域的宽度
params[4] int 矩形区域的宽度
params[5] int 圆角的宽度
params[6] int 圆角的高度

返回值:

返回值 说明
int 创建成功的窗口句柄

参考:

结果:

备注:

foobar不能在本进程窗口内创建

FoobarClearText

函数说明:

清除指定的Foobar滚动文本区

函数体:

    int FoobarClearText (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarClose

函数说明:

关闭一个Foobar,注意,必须调用此函数来关闭窗口,用SetWindowState也可以关闭,但会造成内存泄漏

函数体:

    int FoobarClose (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarDrawLine

函数说明:

在指定的Foobar窗口内部画线条

函数体:

    int FoobarDrawLine (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[1] int 右下角X坐标(相对于hwnd客户区坐标)
params[2] int 右下角Y坐标(相对于hwnd客户区坐标)
params[3] String 填充的颜色值
params[4] int 画笔类型. 0为实线. 1为虚线
params[5] int 线条宽度

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

当style为1时,线条宽度必须也是1.否则线条是实线

FoobarDrawPic

函数说明:

在指定的Foobar窗口绘制图像

函数体:

    int FoobarDrawPic (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] String 图像文件名
params[4] String 图像透明色

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarDrawText

函数说明:

在指定的Foobar窗口绘制文字

函数体:

    int FoobarDrawText (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] int 矩形区域的宽度
params[4] int 矩形区域的高度
params[5] String 字符串
params[6] String 文字颜色值
params[7] int 取值定义如下
"1 :" 左对齐
"2 :" 中间对齐
"4 :" 右对齐

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarFillRect

函数说明:

在指定的Foobar窗口内部填充矩形

函数体:

    int FoobarFillRect (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] int 矩形区域的宽度
params[4] int 矩形区域的高度
params[5] String 填充的颜色值

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarLock

函数说明:

锁定指定的Foobar窗口,不能通过鼠标来移动

函数体:

    int FoobarLock (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarPrintText

函数说明:

向指定的Foobar窗口区域内输出滚动文字

函数体:

    int FoobarPrintText (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] String 文本内容
params[2] String 文本颜色

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarSetFont

函数说明:

设置指定Foobar窗口的字体

函数体:

    int FoobarSetFont (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] String 系统字体名,注意,必须保证系统中有此字体
params[2] int 字体大小
params[3] int 取值如下
"0 :" 正常字体
"1 :" 粗体
"2 :" 斜体
"4 :" 下划线

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

文字可以是以上的组合 比如粗斜体就是1+2,斜体带下划线就是:2+4等

FoobarSetSave

函数说明:

设置保存指定的Foobar滚动文本区信息到文件

函数体:

    int FoobarSetSave (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] String 保存的文件名
params[2] int 取值如下
"0 :" 关闭向文件输出 (默认是0)
"1 :" 开启向文件输出
params[3] String 输出的附加头信息. (比如行数 日期 时间信息) 格式是如下格式串的顺序组合.如果为空串,表示无附加头

"%L0nd%" 表示附加头信息带有行号,并且是按照十进制输出. n表示按多少个十进制数字补0对齐,比如 "%L04d%" ,输出的行号为0001 0002 0003等. "%L03d",输出的行号为001 002 003..等.

"%L0nx%" 表示附加头信息带有行号,并且是按照16进制小写输出. n表示按多少个16进制数字补0对齐. 比如 "%L04x%" ,输出的行号为0009 000a 000b等. "%L03x",输出的行号为009 00a 00b..等

"%L0nX%" 表示附加头信息带有行号,并且是按照16进制大写输出. n表示按多少个16进制数字补0对齐. 比如 "%L04X%" ,输出的行号为0009 000A 000B等. "%L03X",输出的行号为009 00A 00B..等
"%yyyy%"表示年
"%MM%"表示月
"%dd%"表示日
"%hh%"表示小时
"%mm%"表示分钟
"%ss%"表示秒

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

文字可以是以上的组合 比如粗斜体就是1+2,斜体带下划线就是:2+4等

FoobarSetTrans

函数说明:

设置指定Foobar窗口的是否透明

函数体:

    int FoobarSetTrans (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 0为不透明(此时,color和sim无效),1为透明
params[2] String 透明色(RRGGBB)
params[3] double 透明色的相似值 0.1-1.0

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarStartGif

函数说明:

在指定的Foobar窗口绘制gif动画

函数体:

    int FoobarStartGif (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] String 图像文件名
params[4] int 表示重复GIF动画的次数,如果是0表示一直循环显示
params[5] int 表示每帧GIF动画之间的时间间隔.如果是0,表示使用GIF内置的时间

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

所有gif动画是在顶层显示,在默认绘图层和Print层之上. gif之间的显示顺序按照调用FoobarStartGif的顺序决定

FoobarStopGif

函数说明:

停止在指定foobar里显示的gif动画

函数体:

    int FoobarStopGif (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 左上角X坐标(相对于hwnd客户区坐标)
params[2] int 左上角Y坐标(相对于hwnd客户区坐标)
params[3] String 图像文件名

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

对于在不同的坐标显示的gif动画,插件内部会认为是不同的GIF.所以停止GIF时,一定要和FoobarStartGif时指定的x,y坐标一致

FoobarTextLineGap

函数说明:

设置滚动文本区的文字行间距,默认是3

函数体:

    int FoobarTextLineGap (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 文本行间距

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarTextPrintDir

函数说明:

设置滚动文本区的文字输出方向,默认是0

函数体:

    int FoobarTextPrintDir (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int 0 表示向下输出,1 表示向上输出

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarTextRect

函数说明:

设置指定Foobar窗口的滚动文本框范围,默认的文本框范围是窗口区域

函数体:

    int FoobarTextRect (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来
params[1] int x坐标
params[2] int y坐标
params[3] int 宽度
params[4] int 高度

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarUnlock

函数说明:

解锁指定的Foobar窗口,可以通过鼠标来移动

函数体:

    int FoobarUnlock (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

FoobarUpdate

函数说明:

刷新指定的Foobar窗口

函数体:

    int FoobarUpdate (Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的Foobar窗口句柄,此句柄必须是通过CreateFoobarxxx创建而来

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

所有绘制完成以后,必须通过调用此函数来刷新窗口,否则窗口内容不会改变,注意!

内存

暂不提供。

系统

Beep

函数说明:

蜂鸣器

函数体:

    int Beep(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 频率
params[1] int 时长(ms)

返回值:

返回值 说明
int 0:成功 1:失败

参考:

结果:

备注:

CheckFontSmooth

函数说明:

检测当前系统是否有开启屏幕字体平滑

函数体:

    int CheckFontSmooth(Object[] params)

参数列表:

返回值:

返回值 说明
int 0 : 系统没开启平滑字体
1 : 系统有开启平滑字体

参考:

结果:

备注:

Delay

函数说明:

延时指定的毫秒,过程中不阻塞UI操作.

函数体:

    int Delay(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 毫秒数. 必须大于0

返回值:

返回值 说明
int 0 : 成功
1 : 失败

参考:

结果:

备注:

使用Java的Thread.sleep就行,此函数多数情况下不常用。

Delays

函数说明:

延时指定的毫秒,过程中不阻塞UI操作.

函数体:

    int Delays(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 最小毫秒数. 必须大于0
params[1] int 最大毫秒数. 必须大于0

返回值:

返回值 说明
int 0 : 成功
1 : 失败

参考:

结果:

备注:

使用Java的Thread.sleep就行,此函数多数情况下不常用。

DisableCloseDisplayAndSleep

函数说明:

延时指定的毫秒,过程中不阻塞UI操作.

函数体:

    int DisableCloseDisplayAndSleep(Object[] params)

参数列表:

返回值:

返回值 说明
int 0 : 成功
1 : 失败

参考:

结果:

备注:

DisableFontSmooth

函数说明:

关闭当前系统屏幕字体平滑.同时关闭系统的ClearType功能

函数体:

    int DisableFontSmooth(Object[] params)

参数列表:

返回值:

返回值 说明
int 0 : 成功
1 : 失败

参考:

结果:

备注:

DisablePowerSave

函数说明:

关闭电源管理,不会进入睡眠

函数体:

    int DisablePowerSave(Object[] params)

参数列表:

返回值:

返回值 说明
int 0 : 成功
1 : 失败

参考:

结果:

备注:

DisableScreenSave

函数说明:

关闭屏幕保护

函数体:

    int DisableScreenSave(Object[] params)

参数列表:

返回值:

返回值 说明
int 0 : 成功
1 : 失败

参考:

结果:

备注:

开启当前系统屏幕字体平滑.同时开启系统的ClearType功能

EnableFontSmooth

函数说明:

关闭屏幕保护

函数体:

    int EnableFontSmooth(Object[] params)

参数列表:

返回值:

返回值 说明
int 0 : 成功
1 : 失败

参考:

结果:

备注:

退出系统(注销 重启 关机) 

ExitOs

函数说明:

关闭屏幕保护

函数体:

    int ExitOs(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0 : 注销系统
1 : 关机
2 : 重新启动

返回值:

返回值 说明
int 0 : 成功
1 : 失败

参考:

结果:

备注:

GetClipboard

函数说明:

获取剪贴板的内容

函数体:

    String GetClipboard(Object[] params)

参数列表:

返回值:

返回值 说明
String 以字符串表示的剪贴板内容

参考:

结果:

备注:

GetCpuType

函数说明:

获取当前CPU类型(intel或者amd).

函数体:

    int GetCpuType(Object[] params)

参数列表:

返回值:

返回值 说明
int 0 : 未知
1 : Intel cpu
2 : AMD cpu

参考:

结果:

备注:

GetCpuUsage

函数说明:

获取当前CPU的使用率. 用百分比返回

函数体:

    int GetCpuUsage(Object[] params)

参数列表:

返回值:

返回值 说明
int 0-100表示的百分比

参考:

结果:

备注:

GetDir

函数说明:

得到系统的路径

函数体:

    String GetDir(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0 : 获取当前路径
1 : 获取系统路径(system32路径)
2 : 获取windows路径(windows所在路径)
3 : 获取临时目录路径(temp)
4 : 获取当前进程(exe)所在的路径

返回值:

返回值 说明
String 返回路径

参考:

结果:

备注:

GetDiskModel

函数说明:

获取本机的指定硬盘的厂商信息. 要求调用进程必须有管理员权限. 否则返回空串

函数体:

    String GetDiskModel(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 硬盘序号. 表示是第几块硬盘. 从0开始编号,最小为0,最大为5,也就是最多支持6块硬盘的厂商信息获取

返回值:

返回值 说明
String 字符串表达的硬盘厂商信息

参考:

结果:

备注:

GetDiskReversion

函数说明:

获取本机的指定硬盘的修正版本信息. 要求调用进程必须有管理员权限. 否则返回空串

函数体:

    String GetDiskReversion(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 硬盘序号. 表示是第几块硬盘. 从0开始编号,最小为0,最大为5,也就是最多支持6块硬盘的厂商信息获取

返回值:

返回值 说明
String 字符串表达的修正版本信息

参考:

结果:

备注:

GetDiskSerial

函数说明:

获取本机的指定硬盘的序列号. 要求调用进程必须有管理员权限. 否则返回空串

函数体:

    String GetDiskSerial(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 硬盘序号. 表示是第几块硬盘. 从0开始编号,最小为0,最大为5,也就是最多支持6块硬盘的厂商信息获取

返回值:

返回值 说明
String 字符串表达的硬盘序列号

参考:

结果:

备注:

GetDisplayInfo

函数说明:

获取本机的显卡信息

函数体:

    String GetDisplayInfo(Object[] params)

参数列表:

返回值:

返回值 说明
String 字符串表达的显卡描述信息. 如果有多个显卡,用"|"连接

参考:

结果:

备注:

GetDPI

函数说明:

判断当前系统的DPI(文字缩放)是不是100%缩放.

函数体:

    int GetDPI(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:是
1:不是

参考:

结果:

备注:

GetLocale

函数说明:

判断当前系统使用的非UNICODE字符集是否是GB2312(简体中文)(由于设计插件时偷懒了,使用的是非UNICODE字符集,导致插件必须运行在GB2312字符集环境下).

函数体:

    int GetLocale(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:是
1:不是

参考:

结果:

备注:

GB2312,java项目字符也要注意

GetMachineCode

函数说明:

获取本机的机器码.(带网卡). 此机器码用于插件网站后台. 要求调用进程必须有管理员权限. 否则返回空串.

函数体:

    String GetMachineCode(Object[] params)

参数列表:

返回值:

返回值 说明
String 字符串表达的机器机器码

参考:

结果:

备注:

此机器码包含的硬件设备有硬盘,显卡,网卡等,重装系统不会改变此值插拔任何USB设备,(U盘,U盾,USB移动硬盘,USB键鼠等),以及安装任何网卡驱动程序,(开启或者关闭无线网卡等)都会导致机器码改变.

GetMachineCodeNoMac

函数说明:

获取本机的机器码.(不带网卡). 此机器码用于插件网站后台. 要求调用进程必须有管理员权限. 否则返回空串.

函数体:

    String GetMachineCodeNoMac(Object[] params)

参数列表:

返回值:

返回值 说明
String 字符串表达的机器机器码

参考:

结果:

备注:

此机器码包含的硬件设备有硬盘,显卡,网卡等,重装系统不会改变此值插拔任何USB设备,(U盘,U盾,USB移动硬盘,USB键鼠等),都会导致机器码改变.

GetMemoryUsage

函数说明:

获取当前内存的使用率. 用百分比返回

函数体:

    int GetMemoryUsage(Object[] params)

参数列表:

返回值:

返回值 说明
int 0-100表示的百分比

参考:

结果:

备注:

GetNetTime

函数说明:

从网络获取当前北京时间

函数体:

    String GetNetTime(Object[] params)

参数列表:

返回值:

返回值 说明
String 时间格式. 和now返回一致. 比如"2001-11-01 23:14:08"

参考:

结果:

备注:

如果程序无法访问时间服务器,那么返回"0000-00-00 00:00:00"

GetNetTime

函数说明:

根据指定时间服务器IP,从网络获取当前北京时间

函数体:

    String GetNetTime(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String IP或者域名,并且支持多个IP或者域名连接

返回值:

返回值 说明
String 时间格式. 和now返回一致. 比如"2001-11-01 23:14:08"

参考:

结果:

备注:

如果程序无法访问时间服务器,那么返回"0000-00-00 00:00:00"  
时间服务器的IP可以从网上查找NTP服务器

GetOsBuildNumber

函数说明:

得到操作系统的build版本号.  比如win10 16299,那么返回的就是16299. 其他类似

函数体:

    int GetOsBuildNumber(Object[] params)

参数列表:

返回值:

返回值 说明
int 失败返回0,否则就是版本号

参考:

结果:

备注:

GetOsType

函数说明:

得到操作系统的类型

函数体:

    int GetOsType(Object[] params)

参数列表:

返回值:

返回值 说明
int 0 : win95/98/me/nt4.0
1 : xp/2000
2 : 2003/2003 R2/xp-64
3 : win7/2008 R2
4 : vista/2008
5 : win8/2012
6 : win8.1/2012 R2
7 : win10/2016 TP

参考:

结果:

备注:

GetScreenDepth

函数说明:

获取屏幕的色深

函数体:

    int GetScreenDepth(Object[] params)

参数列表:

返回值:

返回值 说明
int 返回系统颜色深度.(16或者32等)

参考:

结果:

备注:

GetScreenHeight

函数说明:

获取屏幕的高度

函数体:

    int GetScreenHeight(Object[] params)

参数列表:

返回值:

返回值 说明
int 返回屏幕的高度

参考:

结果:

备注:

GetScreenWidth

函数说明:

获取屏幕的宽度

函数体:

    int GetScreenWidth(Object[] params)

参数列表:

返回值:

返回值 说明
int 返回屏幕的宽度

参考:

结果:

备注:

GetTime

函数说明:

获取当前系统从开机到现在所经历过的时间,单位是毫秒

函数体:

    int GetTime(Object[] params)

参数列表:

返回值:

返回值 说明
int 时间(单位毫秒)

参考:

结果:

备注:

Is64Bit

函数说明:

判断当前系统是否是64位操作系统

函数体:

    int Is64Bit(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:不是
1:是

参考:

结果:

备注:

IsSurrpotVt

函数说明:

判断当前CPU是否支持vt,并且是否在bios中开启了vt. 仅支持intel的CPU

函数体:

    int IsSurrpotVt(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:当前cpu不是intel的cpu,或者当前cpu不支持vt,或者bios中没打开vt
1:支持

参考:

结果:

备注:

Play

函数说明:

播放指定的MP3或者wav文件

函数体:

    int Play(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 指定的音乐文件,可以采用文件名或者绝对路径的形式

返回值:

返回值 说明
int 0:失败
非0表示当前播放的ID。可以用Stop来控制播放结束.

参考:

结果:

备注:

RunApp

函数说明:

运行指定的应用程序

函数体:

    int RunApp(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 指定的可执行程序全路径
params[1] int 0 : 普通模式
1 : 加强模式

返回值:

返回值 说明
int 0:失败
1:成功.

参考:

结果:

备注:

SetClipboard

函数说明:

设置剪贴板的内容

函数体:

    int SetClipboard(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] String 以字符串表示的剪贴板内容

返回值:

返回值 说明
int 0:失败
1:成功.

参考:

结果:

备注:

SetDisplayAcceler

函数说明:

设置当前系统的硬件加速级别

函数体:

    int SetDisplayAcceler(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 取值范围为0-5. 0表示关闭硬件加速。5表示完全打开硬件加速

返回值:

返回值 说明
int 0:失败
1:成功.

参考:

结果:

备注:

此函数只在XP 2003系统有效

SetLocale

函数说明:

设置当前系统的非UNICOD字符集. 会弹出一个字符集选择列表,用户自己选择到简体中文即可.

函数体:

    int SetLocale(Object[] params)

参数列表:

返回值:

返回值 说明
int 0:失败
1:成功.

参考:

结果:

备注:

SetScreen

函数说明:

设置系统的分辨率 系统色深

函数体:

    int SetScreen(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 屏幕宽度
params[1] int 屏幕高度
params[2] int 系统色深

返回值:

返回值 说明
int 0:失败
1:成功.

参考:

结果:

备注:

SetUAC

函数说明:

设置当前系统的UAC(用户账户控制)

函数体:

    int SetUAC(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 0 : 关闭UAC
1 : 开启UAC

返回值:

返回值 说明
int 0:失败
1:成功.

参考:

结果:

备注:

只有WIN7 WIN8 VISTA WIN2008以及以上系统才有UAC设置. 关闭UAC以后,必须重启系统才会生效  
如果关闭了UAC,那么默认启动所有应用程序都是管理员权限,就不会再发生绑定失败这样的尴尬情况了

ShowTaskBarIcon

函数说明:

显示或者隐藏指定窗口在任务栏的图标

函数体:

    int ShowTaskBarIcon(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int 指定的窗口句柄
params[1] int 0 : 隐藏
1 : 显示

返回值:

返回值 说明
int 0:失败
1:成功.

参考:

结果:

备注:

Stop

函数说明:

停止指定的音乐

函数体:

    int Stop(Object[] params)

参数列表:

参数位置 参数类型 说明
params[0] int Play返回的播放id

返回值:

返回值 说明
int 0:失败
1:成功.

参考:

结果:

备注:

杂项

等待添加。

更多

等待添加。
备案号:

蜀ICP备2021002870号-1

javaelf技术栈