AWIROK软件苹果系统屏幕类[screen]方法小结
AWIROK软件苹果系统屏幕类方法小结/*
🍎交流 QQ 群 711841924 群一,苹果内测群,528816639
🍎屏幕相关方法小结
*/
//🍎屏幕类 方法小结
// 第一个方法:📌lockScreen 锁定屏幕缓存
/*
类别 详情说明
方法功能 锁定屏幕缓存,执行 screenShot 时将会始终返回缓存
方法签名 Void lockScreen()
返回值 Void(无返回值)
参数 无
*/
// 示例:锁定屏幕缓存
screen.lockScreen();
// 第二个方法:📌unLockScreen 解锁锁屏幕缓存
/*
类别 详情说明
方法功能 解锁锁屏幕缓存
方法签名 Void unLockScreen()
返回值 Void(无返回值)
参数 无
*/
// 示例:解锁锁屏幕缓存
screen.unLockScreen();
// 第三个方法:📌isOpenShortcut 是否开启快照截屏
/*
类别 详情说明
方法功能 判断是否开启快照截屏
方法签名 Boolean isOpenShortcut()
返回值 Boolean(开启返回 true,否则返回 false)
参数 无
*/
// 示例:判断是否开启快照截屏
screen.isOpenShortcut();
// 第四个方法:📌getScreenWidth 获取屏幕宽度
/*
类别 详情说明
方法功能 获取屏幕宽度
方法签名 Int32 getScreenWidth()
返回值 Int32(屏幕宽度值)
参数 无
*/
// 示例:获取屏幕宽度
screen.getScreenWidth();
// 第五个方法:📌getScreenHeight 获取屏幕高度
/*
类别 详情说明
方法功能 获取屏幕高度
方法签名 Int32 getScreenHeight()
返回值 Int32(屏幕高度值)
参数 无
*/
// 示例:获取屏幕高度
screen.getScreenHeight();
// 第六个方法:📌ocr 识别支持设定区域
/*
类别 详情说明
方法功能 OCR 识别指定区域内的内容
方法签名 OcrResult ocr(Single left, Single top, Single right, Single bottom)
返回值 OcrResult(OCR 识别结果)
参数 - Single left:区域左边界
- Single top:区域上边界
- Single right:区域右边界
- Single bottom:区域下边界
*/
// 示例:识别指定区域(左 0、上 0、右 1、下 1 范围)的内容
screen.ocr(0, 0, 1, 1);
// 第七个方法:📌screenShot 截图缩放(需调用 close 释放图像)
/*
类别 详情说明
方法功能 对屏幕进行缩放截图,使用后需调用 close 释放图像
方法签名 Image screenShot(Int32 width, Int32 heigth, Int32 compress)
返回值 Image(截图的图像对象)
参数 - Int32 width:截图目标宽度
- Int32 heigth:截图目标高度
- Int32 compress:压缩率(范围 0 - 100)
*/
// 示例:缩放截图(宽度、高度、压缩率为示例值)
screen.screenShot(Int32, Int32, Int32);
// 第八个方法:📌screenShotFull 全尺寸截图(需调用 close 释放图像)
/*
类别 详情说明
方法功能 对屏幕进行全尺寸截图,使用后需调用 close 释放图像
方法签名 Image screenShotFull()
返回值 Image(全尺寸截图的图像对象)
参数 无
*/
// 示例:全尺寸截图
screen.screenShotFull();方法 1:lockScreen(锁定屏幕缓存)
项目详情
功能说明锁定屏幕缓存
方法名lockScreen()
返回值Void
参数无
案例screen.lockScreen()
方法 2:unLockScreen(解锁锁屏幕缓存)
项目详情
功能说明解锁锁屏幕缓存
方法名unLockScreen()
返回值Void
参数无
案例screen.unLockScreen()
方法 3:isOpenShortcut(是否开启快照截屏)
项目详情
功能说明是否开启快照截屏
方法名isOpenShortcut()
返回值Boolean
参数无
案例screen.isOpenShortcut()
方法 4:getScreenWidth(获取屏幕宽度)
项目详情
功能说明获取屏幕宽度
方法名getScreenWidth()
返回值Int32
参数无
案例screen.getScreenWidth()
方法 5:getScreenHeight(获取屏幕高度)
项目详情
功能说明获取屏幕高度
方法名getScreenHeight()
返回值Int32
参数无
案例screen.getScreenHeight()
方法 6:ocr(识别支持设定区域)
项目详情
功能说明识别支持设定区域
方法名ocr(Single left, Single top, Single right, Single bottom)
返回值OcrResult
参数Single left: 左
Single top: 上
Single right: 右
Single bottom: 下
案例screen.ocr(0,0,1,1)
方法 7:screenShot(截图缩放,记得调用 close 释放图像)
项目详情
功能说明截图缩放,记得调用close释放图像
方法名screenShot(Int32 width, Int32 heigth, Int32 compress)
返回值Image
参数Int32 width: 宽
Int32 heigth: 高
Int32 compress: 压缩率(0 - 100)
案例screen.screenShot(Int32,Int32,Int32)
方法 8:screenShotFull(全尺寸截图,记得调用 close 释放图像)
项目详情
功能说明全尺寸截图,记得调用close释放图像
方法名screenShotFull()
返回值Image
参数无
案例screen.screenShotFull()
实战实例子:/*
🍎交流QQ群711841924群一,苹果内测群,528816639
🍎🔨屏幕截图和OCR识别示例方法小结
*/
// 完整的屏幕截图和OCR识别示例
/**
* 1. 基础截图功能
*/
function basicScreenshot() {
try {
// 获取屏幕尺寸
var screenWidth = screen.getScreenWidth();
var screenHeight = screen.getScreenHeight();
printl("屏幕分辨率: " + screenWidth + "x" + screenHeight);
// 全屏截图
var fullImage = screen.screenShotFull();
printl("全屏截图完成");
// 执行OCR识别
var ocrResult = fullImage.ocr(0, 0, 1, 1); // 全屏范围OCR
var allText = ocrResult.getAllString();
printl("OCR识别结果: " + allText.substring(0, 200) + "..."); // 显示前200个字符
// 查找特定文本
var targetText = "设置";
var foundDetect = ocrResult.findIncludeText(targetText, );
if (foundDetect != null) {
printl("找到文本: " + targetText);
// 获取文本位置
var rect = foundDetect.getRect();
var centerX = rect.getCenterX();
var centerY = rect.getCenterY();
printl("文本中心位置: (" + centerX + ", " + centerY + ")");
// 点击该文本
foundDetect.clickRandom();
printl("已点击文本区域");
} else {
printl("未找到文本: " + targetText);
}
// 释放图像资源
fullImage.close();
printl("图像资源已释放");
} catch (e) {
printl("截图操作出错: " + e);
}
}
/**
* 2. 缩放截图功能
*/
function scaledScreenshot() {
try {
var screenWidth = screen.getScreenWidth();
var screenHeight = screen.getScreenHeight();
// 截取屏幕一半大小的图像,压缩率为80%
var scaledImage = screen.screenShot(
Math.floor(screenWidth/2),
Math.floor(screenHeight/2),
80
);
printl("缩放截图完成");
// 执行OCR识别
var ocrResult = scaledImage.ocr(0, 0, 1, 1);
var allText = ocrResult.getAllString();
printl("缩放截图OCR结果: " + allText.substring(0, 200) + "..."); // 显示前200个字符
// 释放图像资源
scaledImage.close();
printl("图像资源已释放");
} catch (e) {
printl("缩放截图操作出错: " + e);
}
}
/**
* 3. 多种截图方式综合示例
*/
function comprehensiveScreenshot() {
try {
printl("=== 开始综合截图测试 ===");
// 获取屏幕信息
var screenWidth = screen.getScreenWidth();
var screenHeight = screen.getScreenHeight();
printl("屏幕分辨率: " + screenWidth + "x" + screenHeight);
// 检查快照截屏状态
var isSnapshot = screen.isOpenShortcut();
printl("快照截屏状态: " + (isSnapshot ? "已开启" : "未开启"));
// 锁定屏幕缓存以确保一致性
screen.lockScreen();
printl("屏幕缓存已锁定");
// 1. 全尺寸截图
printl("执行全尺寸截图...");
var fullImg = screen.screenShotFull();
printl("全尺寸截图完成");
// 对截图进行OCR识别
var ocrResult = fullImg.ocr(0, 0, 1, 1);
var allText = ocrResult.getAllString();
printl("OCR识别完成,文本长度: " + allText.length);
// 查找特定文本
var targetText = "设置";
var foundText = ocrResult.findIncludeText(targetText, );
if (foundText != null) {
printl("找到文本: " + targetText);
// 获取文本位置信息
var rect = foundText.getRect();
var centerX = rect.getCenterX();
var centerY = rect.getCenterY();
printl("文本中心位置: (" + centerX + ", " + centerY + ")");
// 点击该文本
foundText.clickRandom();
printl("已点击文本区域");
} else {
printl("未找到文本: " + targetText);
}
// 2. 缩放截图
printl("执行缩放截图...");
var scaledImg = screen.screenShot(
Math.floor(screenWidth/2),
Math.floor(screenHeight/2),
80
);
printl("缩放截图完成");
// 对缩放截图进行OCR识别
var scaledOcrResult = scaledImg.ocr(0, 0, 1, 1);
var scaledAllText = scaledOcrResult.getAllString();
printl("缩放截图OCR结果: " + scaledAllText.substring(0, 200) + "..."); // 显示前200个字符
// 释放所有图像资源
fullImg.close();
scaledImg.close();
printl("所有图像资源已释放");
// 解锁屏幕缓存
screen.unLockScreen();
printl("屏幕缓存已解锁");
printl("=== 综合截图测试结束 ===");
} catch (e) {
printl("综合截图流程出错: " + e);
// 确保即使出错也能解锁屏幕
try {
screen.unLockScreen();
} catch (unlockError) {
printl("解锁屏幕时出错: " + unlockError);
}
}
}
/**
* 4. 实际应用示例:自动识别并点击按钮
*/
function autoClickButton() {
try {
printl("开始自动识别并点击按钮...");
// 全屏截图
var image = screen.screenShotFull();
printl("截图完成");
// 执行OCR识别
var ocrResult = image.ocr(0, 0, 1, 1);
// 查找包含"确定"或"确认"的按钮
var buttons = [
"确定",
"确认",
"OK",
"好"
];
for (var i = 0; i < buttons.length; i++) {
var button = buttons;
var detect = ocrResult.findIncludeText(button, );
if (detect != null) {
printl("找到按钮: " + button);
// 获取按钮位置
var rect = detect.getRect();
var centerX = rect.getCenterX();
var centerY = rect.getCenterY();
printl("按钮位置: (" + centerX + ", " + centerY + ")");
// 点击按钮
detect.clickRandom();
printl("已点击按钮: " + button);
// 释放资源并返回
image.close();
return;
}
}
// 如果没有找到目标按钮
printl("未找到指定按钮");
// 释放资源
image.close();
} catch (e) {
printl("自动点击按钮出错: " + e);
}
}
// 运行示例
printl("=== 开始运行截图示例 ===");
// 基础截图
basicScreenshot();
// 缩放截图
scaledScreenshot();
// 综合截图
comprehensiveScreenshot();
// 自动点击按钮
autoClickButton();
printl("=== 所有示例运行完成 ===");单独 OCR 并点击的例子:
// 完整的点击“日志”按钮的示例
function clickLogButton() {
try {
// 1. 获取屏幕尺寸
var screenWidth = screen.getScreenWidth();
var screenHeight = screen.getScreenHeight();
printl("屏幕分辨率:" + screenWidth + "x" + screenHeight);
// 2. 全屏截图
var fullImage = screen.screenShotFull();
printl("全屏截图完成");
// 3. 执行OCR识别(全屏范围)
var ocrResult = fullImage.ocr(0, 0, 1, 1);
var allText = ocrResult.getAllString();
printl("OCR识别结果:" + allText.substring(0, 200) + "...");
// 4. 查找包含“日志”的文本
var targetText = "日志";
var foundDetect = ocrResult.findIncludeText(targetText, );
if (foundDetect != null) {
printl("找到文本:" + targetText);
// 5. 获取文本位置
var rect = foundDetect.getRect();
var centerX = rect.getCenterX();
var centerY = rect.getCenterY();
printl("文本中心位置:(" + centerX + ", " + centerY + ")");
// 6. 点击该位置
hid.click(centerX, centerY);
printl("已点击‘日志’按钮");
} else {
printl("未找到‘日志’文本");
// 备用方案:使用百分比坐标点击底部中间位置
// 假设“日志”在底部导航栏中间,大约在屏幕宽度的50%,高度的90%左右
hid.clickPercent(0.5, 0.9);
printl("使用备用方案点击底部中间位置");
}
// 7. 释放图像资源
fullImage.close();
} catch (error) {
printl("执行过程中出现错误:" + error.message);
}
}
// 调用函数
clickLogButton();
页:
[1]