Java源码示例:com.jacob.com.Variant
示例1
/**
* Returns the currently targetd track.
*
* @return An ITTrack object corresponding to the currently targeted track.
* Will be set to NULL if there is no currently targeted track.
*/
public IITTrack getCurrentTrack() {
Variant variant = iTunes.getProperty("CurrentTrack");
if (variant.isNull()) {
return null;
}
Dispatch item = variant.toDispatch();
IITTrack track = new IITTrack(item);
if (track.getKind() == IITTrackKind.ITTrackKindFile) {
return new IITFileOrCDTrack(item);
} else if (track.getKind() == IITTrackKind.ITTrackKindCD) {
return new IITFileOrCDTrack(item);
} else if (track.getKind() == IITTrackKind.ITTrackKindURL) {
return new ITURLTrack(item);
} else {
return track;
}
}
示例2
/**
* Returns the currently targetd track.
*
* @return An ITTrack object corresponding to the currently targeted track.
* Will be set to NULL if there is no currently targeted track.
*/
public IITTrack getCurrentTrack() {
Variant variant = iTunes.getProperty("CurrentTrack");
if (variant.isNull()) {
return null;
}
Dispatch item = variant.toDispatch();
IITTrack track = new IITTrack(item);
if (track.getKind() == IITTrackKind.ITTrackKindFile) {
return new IITFileOrCDTrack(item);
} else if (track.getKind() == IITTrackKind.ITTrackKindCD) {
return new IITFileOrCDTrack(item);
} else if (track.getKind() == IITTrackKind.ITTrackKindURL) {
return new ITURLTrack(item);
} else {
return track;
}
}
示例3
/**
* 指定区域内读取文字
* <li>须提前设置好点阵字库 {@link Com#setDict(int, String)}
* @param xStart 区域的左上X坐标
* @param yStart 区域的左上Y坐标
* @param xEnd 区域的右下X坐标
* @param yEnd 区域的右下Y坐标
* @param colorFormat 颜色格式串
* <li>RGB单色识别:"9f2e3f-000000"
* <li>RGB单色差色识别:"9f2e3f-030303"
* <li>RGB多色识别(最多支持10种,每种颜色用"|"分割):"9f2e3f-030303|2d3f2f-000000|3f9e4d-100000"
* <li>HSV多色识别(最多支持10种,每种颜色用"|"分割):"20.30.40-0.0.0|30.40.50-0.0.0"
* <li>背景色识别:"[email protected]"
* @param lineBreak 换行符,为空或者null则不使用换行符分割。读取的文字每行换行时会加上此字符串作为换行分割
* @param sim 相似度,取值范围0.1-1.0 , 一般情况下0.9即可。越大,查找的越精准,误差越小,速度越快
* @param useDict 字库的序号,以此来设定使用哪个字库. {@link Com#setDict(int, String)} 便是此设置的int序号
* @return String 若是没找到,返回null
*/
public String readStr(int xStart,int yStart,int xEnd,int yEnd,String colorFormat,String lineBreak, double sim,int useDict){
String xnx3_result="";
try {
active.invoke("UseDict",useDict);
Variant[] var=new Variant[6];
var[0]=new Variant(xStart);
var[1]=new Variant(yStart);
var[2]=new Variant(xEnd);
var[3]=new Variant(yEnd);
var[4]=new Variant(colorFormat);
var[5]=new Variant(sim);
xnx3_result=active.invoke("Ocr",var).getString();
} catch (Exception e) {
e.printStackTrace();
log.debug(this,"readStr","读取文字异常捕获:"+e.getMessage());
}
if(xnx3_result.length()==0){
xnx3_result=null;
}
return xnx3_result;
}
示例4
/**
* 设置点阵字库
* @param num 字库的序号,取值为0-9,目前最多支持10个字库,序号设置不可以重复
* @param fileName 字库文件名,如 mapPositionDict.txt ,此文件须位于设置的 {@link Com#setResourcePath(String)} 资源路径里,也就是资源路径必须于此函数之前先设置好
* @return boolean true:成功
*/
public boolean setDict(int num,String fileName){
boolean xnx3_result=false;
Variant[] var=new Variant[2];
try {
var[0]=new Variant(num);
var[1]=new Variant(fileName);
if(activeBean.getDm().invoke("SetDict",var).getInt()==1){
xnx3_result=true;
}
} catch (Exception e) {
e.printStackTrace();
log.debug(this, "setDict", "异常:"+e.getMessage());
}finally{
var=null;
}
return xnx3_result;
}
示例5
/**
* 判断某点颜色是否跟指定的相同或相似
* @param x X坐标
* @param y Y坐标
* @param color 颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000" 这个表示白色偏色为202020,和黑色偏色为000000.颜色最多支持10种颜色组合.
* @param similarity 相似度(0.1-1.0)
* @return 若颜色匹配,此点是这颜色,则返回true
*/
public boolean findColor(int x,int y,String color,float similarity){
boolean xnx3_result=false;
try {
Variant[] var=new Variant[4];
var[0]=new Variant(x);
var[1]=new Variant(y);
var[2]=new Variant(color);
var[3]=new Variant(similarity);
int cmpColor=activeDm.invoke("CmpColor",var).getInt();
var=null;
if(cmpColor==0){
xnx3_result=true;
}
cmpColor=0;
} catch (Exception e) {
log.debug(this,"findColor","获取颜色异常捕获:"+e.getMessage());
}
return xnx3_result;
}
示例6
/**
* 移动窗口到屏幕指定坐标点
* @param hwnd 移动窗口的句柄
* @return 成功:true
*/
public boolean moveWindow(int hwnd,int x, int y){
boolean xnx3_result=false;
Variant[] var=new Variant[3];
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(x);
var[2]=new Variant(y);
int getResult=active.invoke("MoveWindow",var).getInt();
if(getResult==1){ //成功
xnx3_result=true;
}
} catch (Exception e) {
e.printStackTrace();
log.debug(this,"MoveWindow","移动窗口时异常捕获:"+e.getMessage());
}finally{
var=null;
}
return xnx3_result;
}
示例7
/**
* 设置指定窗口的大小
* @param hwnd 窗口句柄
* @param width 要设置成的宽度
* @param height 要设置成的高度
* @return 设置成功返回true
*/
public boolean setWindowSize(int hwnd,int width,int height){
Variant[] var=new Variant[3];
int result=0;
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(width);
var[2]=new Variant(height);
result=this.active.invoke("SetClientSize",var).getInt();
} catch (Exception e) {
log.debug(this, "setWindowSize", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result==1;
}
示例8
/**
* 设置窗口的标题
* @param hwnd 指定的窗口句柄
* @param title 新标题
* @return boolean true:成功
*/
public boolean setWindowTitle(int hwnd,String title){
Variant[] var=new Variant[2];
int result=0;
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(title);
result=this.active.invoke("SetWindowText",var).getInt();
} catch (Exception e) {
log.debug(this, "SetWindowText", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result==1;
}
示例9
/**
* 设置窗口的透明度
* @param hwnd 指定的窗口句柄
* @param trans 透明度取值(0-255) 越小透明度越大 0为完全透明(不可见) 255为完全显示(不透明)
* @return boolean true:成功
*/
public boolean setWindowTransparent(int hwnd,int trans){
Variant[] var=new Variant[2];
int result=0;
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(trans);
result=this.active.invoke("setWindowTransparent",var).getInt();
} catch (Exception e) {
log.debug(this, "setWindowTransparent", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result==1;
}
示例10
/**
* 判断窗口的状态,获得一些窗口的属性,可直接使用 可直接使用 {@link Window#windowIsExist(int)} 、 {@link Window#windowIsVisible(int)} ...
* @param hwnd 指定的窗口句柄
* @param type 查询的状态:<li>0 : 判断窗口是否存在
* <li>1 : 判断窗口是否处于激活
* <li>2 : 判断窗口是否可见
* <li>3 : 判断窗口是否最小化
* <li>4 : 判断窗口是否最大化
* <li>5 : 判断窗口是否置顶
* <li>6 : 判断窗口是否无响应
* @return boolean true:是
*/
public boolean windowState(int hwnd,int type){
Variant[] var=new Variant[2];
int result=0;
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(type);
result=this.active.invoke("GetWindowState",var).getInt();
} catch (Exception e) {
log.debug(this, "windowState", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result==1;
}
示例11
/**
* 查找符合类名或者标题名的顶层可见窗口,如果指定了parentHwnd,则在parentHwnd的第一层子窗口中查找.
* @param parentHwnd 父窗口句柄,如果为0,则匹配所有顶层窗口
* @param className 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.
* @param title 窗口标题,如果为空,则匹配所有. 这里的匹配是模糊匹配.
* @return 找到的窗口句柄,0为没有找到
*/
public int findWindow(int parentHwnd,String className,String title){
Variant[] var=new Variant[3];
int result=0;
if(className==null){
className="";
}
if(title==null){
title="";
}
try {
var[0]=new Variant(parentHwnd);
var[1]=new Variant(className);
var[2]=new Variant(title);
result=this.active.invoke("FindWindowEx",var).getInt();
} catch (Exception e) {
e.printStackTrace();
log.debug(this, "findChildWindow", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result;
}
示例12
/**
* 获取窗口在屏幕上的位置,窗口可被遮挡,不可最小化
* @param hwnd 目标窗口句柄
* @return int[] 参数介绍:
* <li>[0]:调用C函数执行情况。 0失败;1成功
* <li>[1]:返回窗口左上角X坐标
* <li>[2]:返回窗口左上角Y坐标
* <li>[3]:返回窗口右下角X坐标
* <li>[4]:返回窗口右下角Y坐标
*/
public int[] getWindowRect(int hwnd){
int result[]={0,0,0,0,0};
Variant[] var=new Variant[5];
try{
var[0]=new Variant(hwnd);
var[1]=new Variant(0,true);
var[2]=new Variant(0,true);
var[3]=new Variant(0,true);
var[4]=new Variant(0,true);
result[0]=active.invoke("GetWindowRect",var).getInt();
}catch (Exception e) {
e.printStackTrace();
}finally{
result[1]=var[1].getInt();
result[2]=var[2].getInt();
result[3]=var[3].getInt();
result[4]=var[4].getInt();
var=null;
}
return result;
}
示例13
/**
* 查找图片,返回找到的所有图片,限制1500个以内
* @param xStart 区域的左上X坐标
* @param yStart 区域的左上Y坐标
* @param xEnd 区域的右下X坐标
* @param yEnd 区域的右下Y坐标
* @param pic 图像集,多个用|分割,24位色bmp格式,且边框为同一种颜色,比如"test.bmp|test2.bmp|test3.bmp"
* @param deviationColor 颜色偏差,比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
* @param sim 相似度,取值范围0.1-1.0 , 一般情况下0.9即可<li>越大,查找的越精准,误差越小,速度越快
* @param order <li>0: 从左到右,从上到下
* <li>1: 从左到右,从下到上
* <li>2: 从右到左,从上到下
* <li>3: 从右到左, 从下到上
* @return 返回找到的所有图片,格式如:"id,x,y|id,x,y..|id,x,y"
* <br/>比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的图片是图像序号为0的图片,坐标是(100,20),第二个是序号为2的图片,坐标(30,40)
* <li>出错返回null
*/
public String findPics(int xStart,int yStart,int xEnd,int yEnd,String pic,String deviationColor,double sim,int order){
String result=null;
Variant[] var=new Variant[8];
try {
var[0]=new Variant(xStart);
var[1]=new Variant(yStart);
var[2]=new Variant(xEnd);
var[3]=new Variant(yEnd);
var[4]=new Variant(pic);
var[5]=new Variant(deviationColor);
var[6]=new Variant(sim);
var[7]=new Variant(order);
result=active.invoke("FindPicEx",var).getString();
} catch (Exception e) {
e.printStackTrace();
log.debug(this,"findPicExPositions","查找图片异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result;
}
示例14
/**
* 判断指定的区域,在指定的时间内(秒),图像数据是否一直不变.(卡屏)
* <li>若是出现变化,会立即中断计时,返回false
* <li>若未出现变化,则会阻塞 time 的时间
* @param xStart 区域的左上X坐标
* @param yStart 区域的左上Y坐标
* @param xEnd 区域的右下X坐标
* @param yEnd 区域的右下Y坐标
* @param time 需要等待的时间,单位是秒
* @return true:是一直不变
*/
public boolean isDisplayDead(int xStart,int yStart,int xEnd,int yEnd,int time){
Variant[] var=new Variant[5];
int result=0;
try {
var[0]=new Variant(xStart);
var[1]=new Variant(yStart);
var[2]=new Variant(xEnd);
var[3]=new Variant(yEnd);
var[4]=new Variant(time);
result=this.active.invoke("IsDisplayDead",var).getInt();
} catch (Exception e) {
e.printStackTrace();
log.debug(this, "isDisplayDead", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result==1;
}
示例15
/**
* 截图保存,保存为png格式
* @param xStart 区域的左上X坐标
* @param yStart 区域的左上Y坐标
* @param xEnd 区域的右下X坐标
* @param yEnd 区域的右下Y坐标
* @param fileName 保存的文件名
* <li>只有文件名,如 "xnx3.png" 保存的地方为 {@link Com#setResourcePath(String)} 中设置的目录
* <li>也可以指定全路径名,如"c:\\xunxian\\xnx3.png"
*/
public void screenImage(int xStart,int yStart,int xEnd,int yEnd, String fileName){
try {
int enableDisplayDebug=active.invoke("EnableDisplayDebug",1).getInt();
if(enableDisplayDebug==0){
log.debug(this,"screenImage","EnableDisplayDebug-截图开启失败");
}
Variant[] var=new Variant[5];
var[0]=new Variant(xStart);
var[1]=new Variant(yStart);
var[2]=new Variant(xEnd);
var[3]=new Variant(yEnd);
var[4]=new Variant(fileName);
int capTurePre=active.invoke("CapturePng",var).getInt();
var=null;
if(capTurePre==0){
log.debug(this,"screenImage","截图失败");
}
active.invoke("EnableDisplayDebug",0);
} catch (Exception e) {
log.debug(this,"screenImage","截图异常捕获:"+e.getMessage());
}
}
示例16
/**
* 蜂鸣器,进行发音蜂鸣
* @param frequency 频率,50到10000之间便可,数值越大越尖越刺耳,一般情况500就可
* @param time 蜂鸣时间,单位为毫秒
* @return true:成功
*/
public boolean beep(int frequency,int time){
Variant[] var=new Variant[2];
int result=0;
try {
var[0]=new Variant(frequency);
var[1]=new Variant(time);
result=this.activeDm.invoke("Beep",var).getInt();
} catch (Exception e) {
log.debug(this, "beep", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result==1;
}
示例17
/**
* 设置系统的分辨率、系统色深
* @param width 屏幕分辨率宽度
* @param height 屏幕分辨率高度
* @param depth 系统色深
* @return true:成功
*/
public boolean setScreen(int width,int height,int depth){
Variant[] var=new Variant[3];
int result=0;
try {
var[0]=new Variant(width);
var[1]=new Variant(height);
var[2]=new Variant(depth);
result=this.activeDm.invoke("SetScreen",var).getInt();
} catch (Exception e) {
e.printStackTrace();
log.debug(this, "setScreen", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result==1;
}
示例18
/**
* 将某个窗口装载到托盘(创建托盘,只是生成一个托盘,鼠标放上显示title文字,托盘图标为运行程序的图标,也就是java的图标)
* @param hwnd 窗口句柄
* @param title 鼠标放上显示的文字
* @return 成功|失败
*/
public boolean addTray(int hwnd,String title){
boolean result=true;
Variant[] var=new Variant[2];
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(title);
this.activePlugin365.invoke("AddTray",var);
} catch (Exception e) {
result=false;
e.printStackTrace();
log.debug(this, "addTray", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result;
}
示例19
/**
* 弹出托盘气泡
* <li>要有托盘才能弹出气泡,可使用 {@link #addTray(int, String)} 创建一个托盘
* @param hwnd 窗口句柄
* @param title 气泡标题
* @param message 气泡信息的内容
* @param mode 气泡显示模式,分为以下:
* <li>0 : 没有图标
* <li>1 : 信息图标
* <li>2 : 警告图标
* <li>3 : 错误图标
* <li>4 : 程序图标
* @return 成功|失败
*/
public boolean showTipTray(int hwnd,String title,String message,int mode){
boolean result=true;
Variant[] var=new Variant[4];
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(message);
var[2]=new Variant(title);
var[3]=new Variant(mode);
this.activePlugin365.invoke("TipTray",var);
} catch (Exception e) {
e.printStackTrace();
log.debug(this, "showTipTray", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result;
}
示例20
/**
* 卸载已装载的托盘
* @param hwnd 窗口句柄
* @return 成功|失败
*/
public boolean delTray(int hwnd){
boolean result=true;
Variant[] var=new Variant[1];
try {
var[0]=new Variant(hwnd);
this.activePlugin365.invoke("DelTray",var);
} catch (Exception e) {
result=false;
e.printStackTrace();
log.debug(this, "delTray", "异常捕获:"+e.getMessage());
}finally{
var=null;
}
return result;
}
示例21
/**
* WORD转HTML
*
* @param docfile
* WORD文件全路径
* @param htmlfile
* 转换后HTML存放路径
*/
public void wordToHtml(String docfile, String htmlfile) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try {
app.setProperty("Visible", new Variant(false));
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] { docfile, new Variant(false), new Variant(true) }, new int[1]).toDispatch();
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { htmlfile, new Variant(WORD_HTML) }, new int[1]);
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
}
}
示例22
/**
* EXCEL转HTML
*
* @param xlsfile
* EXCEL文件全路径
* @param htmlfile
* 转换后HTML存放路径
*/
public void excelToHtml(String xlsfile, String htmlfile) {
ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 启动excel
try {
app.setProperty("Visible", new Variant(false));
Dispatch excels = app.getProperty("Workbooks").toDispatch();
Dispatch excel = Dispatch.invoke(excels, "Open", Dispatch.Method, new Object[] { xlsfile, new Variant(false), new Variant(true) }, new int[1]).toDispatch();
Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] { htmlfile, new Variant(EXCEL_HTML) }, new int[1]);
Variant f = new Variant(false);
Dispatch.call(excel, "Close", f);
org.jeecgframework.core.util.LogUtil.info("wordtohtml转换成功");
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
}
}
示例23
/**
* 信诺答题,返回剩余可使用次数
*/
public String getAutoDaTiNum(){
String result="查询时程序出现异常!";
try {
Variant[] var=new Variant[1];
var[0]=new Variant(Command.autoDaTiPasswordString);
String getResult=Command.activeXinNuo.invoke("SNSearch",var).getString();
var=null;
if(getResult.equals("-1")){
result="上传异常";
}else if(getResult.equals("-2")){
result="用户名或密码错误";
}else if(getResult.equals("-3")){
result="查询失败";
}else{ //查询成功,返回剩余题分
result=getResult+"<br/>(每次验证消耗14题分)";
}
getResult=null;
} catch (Exception e) {
new Func.File().log("查询自动答题剩余时异常捕获:"+e.getMessage());
e.printStackTrace();
}
return result;
}
示例24
/**
* 读取文字
* <li>xStart,xEnd,yStart,yEnd 读取文字所在的区域
* <li>colorFormat:文字颜色及范围,如ffd800-888888,多个用|分割
* <li>sim:相似度,最大为1,一般0.9便可
* @return:若是没找到,返回""
*
*/
public String readStr(int xStart,int yStart,int xEnd,int yEnd,String colorFormat,double sim,int useDict){
String xnx3_result="";
try {
activeDm.invoke("UseDict",useDict);
Variant[] var=new Variant[6];
var[0]=new Variant(xStart);
var[1]=new Variant(yStart);
var[2]=new Variant(xEnd);
var[3]=new Variant(yEnd);
var[4]=new Variant(colorFormat);
var[5]=new Variant(sim);
xnx3_result=activeDm.invoke("Ocr",var).getString();
} catch (Exception e) {
e.printStackTrace();
new Func.File().log("读取文字异常捕获:"+e.getMessage());
}
return xnx3_result;
}
示例25
/**
* 判断某点颜色是否跟指定的相同或相似
* @param color:要判断的颜色(FFFFFF)
* @return 若颜色匹配,此点是这颜色,则返回true
*/
public boolean findColor(int x,int y,String color){
boolean xnx3_result=false;
try {
Variant[] var=new Variant[4];
var[0]=new Variant(x);
var[1]=new Variant(y);
var[2]=new Variant(color+"-"+Command.dianColor);
var[3]=new Variant(Command.dianSim);
int cmpColor=activeDm.invoke("CmpColor",var).getInt();
var=null;
if(cmpColor==0){
xnx3_result=true;
}
cmpColor=0;
} catch (Exception e) {
new Func.File().log("获取颜色findColor异常捕获:"+e.getMessage());
}
return xnx3_result;
}
示例26
/**
* 获取小地图x坐标
* @return 失败则返回0
*/
public int getMapPositionX(){
int result=0;
try{
activeDm.invoke("UseDict",1).getInt();
Variant[] var=new Variant[6];
var[0]=new Variant(Command.mapXPositionXStart);
var[1]=new Variant(Command.mapXPositionYStart);
var[2]=new Variant(Command.mapXPositionXEnd);
var[3]=new Variant(Command.mapXPositionYEnd);
var[4]=new Variant(Command.mapPositionColor);
var[5]=new Variant(Command.mapPositionSim);
String returnNum=activeDm.invoke("Ocr",var).getString();
result=Integer.parseInt(returnNum);
var=null;
returnNum=null;
}catch (Exception e) {
new Func.File().log("获取小地图X坐标异常捕获:"+e.getMessage());
}
return result;
}
示例27
/**
* 获取小地图y坐标
* @return 失败返回0
*/
public int getMapPositionY(){
int result=0;
try{
activeDm.invoke("UseDict",1).getInt();
Variant[] var=new Variant[6];
var[0]=new Variant(Command.mapYPositionXStart);
var[1]=new Variant(Command.mapYPositionYStart);
var[2]=new Variant(Command.mapYPositionXEnd);
var[3]=new Variant(Command.mapYPositionYEnd);
var[4]=new Variant(Command.mapPositionColor);
var[5]=new Variant(Command.mapPositionSim);
String returnNum=activeDm.invoke("Ocr",var).getString();
result=Integer.parseInt(returnNum);
var=null;
returnNum=null;
}catch (Exception e) {
new Func.File().log("获取小地图Y坐标异常捕获:"+e.getMessage());
}
return result;
}
示例28
/**
* 移动窗口到屏幕指定坐标点
* @param hwnd 移动窗口的句柄
* @return 成功:true
*/
public boolean MoveWindow(int hwnd,int x, int y){
boolean xnx3_result=false;
Variant[] var=new Variant[3];
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(x);
var[2]=new Variant(y);
int getResult=activeDm.invoke("MoveWindow",var).getInt();
if(getResult==1){ //成功
xnx3_result=true;
}
} catch (Exception e) {
e.printStackTrace();
new Func.File().log("移动窗口时异常捕获:"+e.getMessage());
}finally{
var=null;
}
return xnx3_result;
}
示例29
/**
* 屏幕坐标与窗口坐标互相转化
*
* @param type 转换类型
* <li>0表示屏幕转化为窗口(整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内)
* <li>1表示窗口转化成屏幕
* <li>2表示屏幕转化为窗口客户区(不包括窗口的边框、标题栏、滚动条及菜单)
* <li>3表示窗口客户区转化为屏幕
* <li>4表示窗口转化为窗口客户区(不包括窗口的边框、标题栏、滚动条及菜单)
* <li>5表示窗口客户区转化为窗口
*
* @return int[2] 返回x、y坐标。若是出错,返回-1,-1
*/
public int[] windowPosition(int hwnd,int x,int y,int type){
int[] xnx3_result={-1,-1};
Variant[] var=new Variant[4];
int[] getResult=null;
try {
var[0]=new Variant(hwnd);
var[1]=new Variant(x);
var[2]=new Variant(y);
var[3]=new Variant(type);
getResult=this.activeDbWindow.invoke("CoordinateFtoB",var).toSafeArray().toIntArray();
xnx3_result[0]=getResult[0];
xnx3_result[1]=getResult[1];
} catch (Exception e) {
e.printStackTrace();
new Func.File().log("窗口坐标转换windowPosition异常捕获:"+e.getMessage());
}finally{
var=null;
getResult=null;
}
return xnx3_result;
}
示例30
/**
* 截取这个范围内,3秒动画,图像质量为中等50,动画帧率间隔为100ms
* faqCapture(0,2,72,12,50,100,3000)
*
* @param xStart 左上角X坐标
* @param yStart 左上角Y坐标
* @param xEnd 右下角X坐标
* @param yEnd 右下角Y坐标
* @param quality 图像或动画品质,或者叫压缩率,此值越大图像质量越好 取值范围(1-100)
* @param delay 截取动画时用,表示相隔两帧间的时间间隔,单位毫秒 (如果只是截取静态图像,这个参数必须是0)
* @param time 表示总共截取多久的动画,单位毫秒 (如果只是截取静态图像,这个参数必须是0)
*
* @return 整数型,图像或者动画句柄,0为失败
*/
public int faqCapture(int xStart, int yStart, int xEnd, int yEnd, int quality, int delay, int time){
int xnx3_result = 0;
try {
Variant[] var=new Variant[7];
var[0]=new Variant(xStart);
var[1]=new Variant(yStart);
var[2]=new Variant(xEnd);
var[3]=new Variant(yEnd);
var[4]=new Variant(quality);
var[5]=new Variant(delay);
var[6]=new Variant(time);
xnx3_result=activeDm.invoke("FaqCapture",var).getInt();
var=null;
} catch (Exception e) {
e.printStackTrace();
new Func.File().log("局域网答题faqCapture异常捕获:"+e.getMessage());
}
return xnx3_result;
}