| |  |  |  |  |  | AWIROK软件苹果系统屏幕类[screen]方法小结
                        ![AWIROK软件苹果系统屏幕类[screen]方法小结 群发软件发帖工具  AWIROK软件苹果系统屏幕类[screen]方法小结 群发软件发帖工具](static/image/common/none.gif)  ![AWIROK软件苹果系统屏幕类[screen]方法小结 群发软件发帖工具  AWIROK软件苹果系统屏幕类[screen]方法小结 群发软件发帖工具](static/image/common/none.gif)  ![AWIROK软件苹果系统屏幕类[screen]方法小结 群发软件发帖工具  AWIROK软件苹果系统屏幕类[screen]方法小结 群发软件发帖工具](static/image/common/none.gif)  方法 1:lockScreen(锁定屏幕缓存)复制代码/*
🍎交流 QQ 群 711841924 群一,苹果内测群,528816639
🍎屏幕相关方法小结
*/
//🍎屏幕类 [screen] 方法小结
// 第一个方法:📌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();
方法 2:unLockScreen(解锁锁屏幕缓存)| 项目 | 详情 |  | 功能说明 | 锁定屏幕缓存 |  | 方法名 | lockScreen() |  | 返回值 | Void |  | 参数 | 无 |  | 案例 | screen.lockScreen() | 
 方法 3:isOpenShortcut(是否开启快照截屏)| 项目 | 详情 |  | 功能说明 | 解锁锁屏幕缓存 |  | 方法名 | unLockScreen() |  | 返回值 | Void |  | 参数 | 无 |  | 案例 | screen.unLockScreen() | 
 方法 4:getScreenWidth(获取屏幕宽度)| 项目 | 详情 |  | 功能说明 | 是否开启快照截屏 |  | 方法名 | isOpenShortcut() |  | 返回值 | Boolean |  | 参数 | 无 |  | 案例 | screen.isOpenShortcut() | 
 方法 5:getScreenHeight(获取屏幕高度)| 项目 | 详情 |  | 功能说明 | 获取屏幕宽度 |  | 方法名 | getScreenWidth() |  | 返回值 | Int32 |  | 参数 | 无 |  | 案例 | screen.getScreenWidth() | 
 方法 6:ocr(识别支持设定区域)| 项目 | 详情 |  | 功能说明 | 获取屏幕高度 |  | 方法名 | getScreenHeight() |  | 返回值 | Int32 |  | 参数 | 无 |  | 案例 | screen.getScreenHeight() | 
 方法 7:screenShot(截图缩放,记得调用 close 释放图像)| 项目 | 详情 |  | 功能说明 | 识别支持设定区域 |  | 方法名 | ocr(Single left, Single top, Single right, Single bottom) |  | 返回值 | OcrResult |  | 参数 | Single left : 左Single top
 : 上Single right
 : 右Single bottom
 : 下 |  | 案例 | screen.ocr(0,0,1,1) | 
 方法 8:screenShotFull(全尺寸截图,记得调用 close 释放图像)| 项目 | 详情 |  | 功能说明 | 截图缩放,记得调用close 释放图像 |  | 方法名 | screenShot(Int32 width, Int32 heigth, Int32 compress) |  | 返回值 | Image |  | 参数 | Int32 width : 宽Int32 heigth
 : 高Int32 compress
 : 压缩率(0 - 100) |  | 案例 | screen.screenShot(Int32,Int32,Int32) | 
 | 项目 | 详情 |  | 功能说明 | 全尺寸截图,记得调用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, [0, 0, 1, 1]);
        
        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, [0, 0, 1, 1]);
        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[i];
            var detect = ocrResult.findIncludeText(button, [0, 0, 1, 1]);
            
            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, [0, 0, 1, 1]);
        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();
 
 |  |  |  |  |  | 
 |