信息发布软件,b2b软件,广告发布软件
标题:
AIWROK软件屏幕自动化操作方法汇集
[打印本页]
作者:
群发软件
时间:
2025-3-25 07:26
标题:
AIWROK软件屏幕自动化操作方法汇集
// 官方群711841924
// 第一个方法:⌛screen.MLKitOcr_免字库ocr
var img1 = screen.screenShotFull();
var ocr1 = img1.MLKitOcr('zhs');
var text1 = ocr1.getAllString();
printl(text1);
img1.recycle();
// 第二个方法:⌛screen._screenShot_截图并压缩
var pic = screen.screenShot(800, 600, [90]); // 设置截图尺寸为800x600,压缩质量为90
// 步骤 2:检查截图是否成功
if (pic !== null) {
// 步骤 3:使用 OCR 技术识别中文文字
var ocrResult = pic.MLKitOcr('zh'); // 指定识别语言为中文
// 步骤 4:检查 OCR 识别是否成功
if (ocrResult !== null) {
// 步骤 5:获取并打印识别的文本内容
var text = ocrResult.getAllString(); // 获取所有识别的文本
printl("识别的文本内容:");
printl(text);
} else {
printl("OCR 识别失败,请检查权限或屏幕内容。");
}
} else {
printl("截图失败,请检查权限设置。");
}
// 第三个方法:⌛screen.areaToPercent_面积转屏幕占比
// 获取屏幕截图
var img = screen.screenShotFull();
// 使用 MLKitOcr 进行 OCR 文字识别(简体中文)
var ocrResult = img.MLKitOcr('zhs');
var recognizedText = ocrResult.getAllString();
printl("OCR 识别结果: " + recognizedText);
// 计算特定区域的面积占屏幕的百分比
var area = 1000; // 假设要计算的面积为 1000
var percentage = screen.areaToPercent(area);
if (percentage !== null) {
printl("面积 " + area + " 占屏幕的百分比: " + percentage + "%");
} else {
printl("计算失败,请检查参数或屏幕设置。");
}
// 查找特定文本并点击
var target = ocrResult.findIncludeText("雷电");
if (target) {
target.click();
printl("成功点击目标区域: 雷电");
} else {
printl("目标区域未找到: 雷电");
}
// 回收资源
img.recycle();
// 第四个方法:⌛screen.dip2px_DIP转像素
// 示例:将 444 DIP 转换为像素
var dipValue = 444;
var pixelValue = screen.dip2px(dipValue);
if (pixelValue !== null) {
printl(dipValue + " DIP 转换为像素: " + pixelValue + " px");
} else {
printl("转换失败,请检查权限或参数。");
}
// 第五个方法:⌛screen.getRotation_取屏幕旋转方向
var rotation = screen.getRotation();
if (rotation !== null) {
switch (rotation) {
case 0:
printl("屏幕未旋转,使用默认布局。");
// 设置默认布局
break;
case 1:
printl("屏幕逆时针旋转 90 度,调整为横屏布局。");
// 设置横屏布局
break;
case 2:
printl("屏幕逆时针旋转 180 度,调整为倒置布局。");
// 设置倒置布局
break;
case 3:
printl("屏幕逆时针旋转 270 度,调整为横屏布局。");
// 设置横屏布局
break;
default:
printl("未知的屏幕旋转方向。");
break;
}
} else {
printl("无法获取屏幕旋转方向,使用默认布局。");
// 设置默认布局
}
// 第六个方法:⌛获取屏幕高度
//
var screenHeight = screen.getScreenHeight();
// 检查是否成功获取屏幕高度
if (screenHeight !== null) {
printl("当前屏幕高度: " + screenHeight + " 像素");
// 根据屏幕高度动态调整布局
if (screenHeight >= 1920) {
printl("高分辨率屏幕,使用大尺寸布局。");
// 在这里可以执行高分辨率屏幕的布局调整代码
// 例如,调整按钮大小、字体大小等
} else if (screenHeight >= 1280) {
printl("中等分辨率屏幕,使用中等尺寸布局。");
// 在这里可以执行中等分辨率屏幕的布局调整代码
} else {
printl("低分辨率屏幕,使用小尺寸布局。");
// 在这里可以执行低分辨率屏幕的布局调整代码
}
// 假设我们有一个需要根据屏幕高度调整的元素
var elementHeight = screenHeight * 0.1; // 元素高度为屏幕高度的10%
printl("调整后的元素高度: " + elementHeight + " 像素");
// 进一步操作,例如点击某个按钮或执行其他任务
var button = findButtonByHeight(elementHeight);
if (button) {
button.click();
printl("成功点击按钮。");
} else {
printl("未找到符合条件的按钮。");
}
} else {
printl("无法获取屏幕高度,请检查权限或设备支持情况。");
}
// 假设这是一个辅助函数,用于根据高度查找按钮
function findButtonByHeight(height) {
// 这里可以模拟查找按钮的逻辑
// 例如,遍历所有按钮,找到高度匹配的按钮
// 这里为了示例,直接返回一个虚拟按钮对象
if (height > 0) {
return { click: function() { printl("按钮被点击!"); } };
} else {
return null;
}
}
// 第七个方法:⌛获取屏幕宽度
var screenWidth = screen.getScreenWidth();
// 2. 检查返回值是否为 null
// - 如果返回值不为 null,表示成功获取屏幕宽度,输出宽度信息。
// - 如果返回值为 null,表示获取失败,输出错误提示。
if (screenWidth !== null) {
// 成功获取屏幕宽度,打印结果
printl("当前屏幕宽度为: " + screenWidth + " 像素");
} else {
// 获取失败,提示用户检查权限或设备支持情况
printl("无法获取屏幕宽度,请检查权限或设备支持情况。");
}
// 第八个方法:⌛使用 screen.heightToPercent 函数将真实坐标转换为百分比坐标
var yCoordinate = 10; // 假设需要转换的真实 y 坐标
var result = screen.heightToPercent(yCoordinate);
// 检查转换结果
if (result) {
printl("转换成功: " + result); // 输出转换后的百分比坐标
} else {
printl("转换失败,请检查权限或参数是否正确。"); // 处理转换失败的情况
}
// 第九个方法:⌛使用 screen.px2dip 进行像素到 DIP 的转换,并处理多种场景
// 1. 获取屏幕宽度并转换为 DIP
var screenWidth = screen.getScreenWidth();
if (screenWidth !== null) {
var dipWidth = screen.px2dip(screenWidth);
if (dipWidth !== null) {
printl("屏幕宽度转换为 DIP 值为: " + dipWidth);
} else {
printl("屏幕宽度转换失败,请检查权限或设备支持情况。");
}
} else {
printl("无法获取屏幕宽度,请检查权限或设备支持情况。");
}
// 2. 假设有一个 UI 元素的像素位置为 (100, 200),将其转换为 DIP
var uiElementX = 100;
var uiElementY = 200;
var dipX = screen.px2dip(uiElementX);
var dipY = screen.px2dip(uiElementY);
if (dipX !== null && dipY !== null) {
printl("UI 元素的 DIP 坐标为: (" + dipX + ", " + dipY + ")");
} else {
printl("UI 元素坐标转换失败,请检查权限或设备支持情况。");
}
// 3. 处理多个像素值转换的场景
var pixelValues = [444, 888, 1332];
var dipValues = [];
for (var i = 0; i < pixelValues.length; i++) {
var dipValue = screen.px2dip(pixelValues[i]);
if (dipValue !== null) {
dipValues.push(dipValue);
} else {
printl("像素值 " + pixelValues[i] + " 转换失败,请检查权限或设备支持情况。");
}
}
if (dipValues.length === pixelValues.length) {
printl("所有像素值成功转换为 DIP: " + dipValues.join(", "));
}
// 4. 处理边界情况,如像素值为 0 或负数
var edgeCases = [0, -100];
for (var j = 0; j < edgeCases.length; j++) {
var edgeDipValue = screen.px2dip(edgeCases[j]);
if (edgeDipValue !== null) {
printl("像素值 " + edgeCases[j] + " 转换为 DIP 值为: " + edgeDipValue);
} else {
printl("像素值 " + edgeCases[j] + " 转换失败,请检查权限或设备支持情况。");
}
}
// 第九个方法:⌛使用 screen.px2dip 进行像素到 DIP 的转换,并处理多种场景
// 获取全屏截图
var pic = screen.screenShotFull();
// 对截图进行 OCR 识别,指定语言为中文
var ocrResult = pic.MLKitOcr('zh');
// 检查 OCR 识别结果是否为空
if (ocrResult) {
// 获取所有识别到的文本内容
var allText = ocrResult.getAllString();
// 打印所有识别到的文本内容
printl("OCR 识别结果: " + allText);
// 查找特定文本
var targetText = "雷电游戏中心";
if (allText.includes(targetText)) {
printl("找到目标文本: " + targetText);
} else {
printl("未找到目标文本: " + targetText);
}
} else {
printl("OCR 识别失败,请检查权限或设备支持情况。");
}
// 释放截图资源
pic.recycle();
// 第十个方法:⌛screen.widthToPercent_实x转百分比x
// 定义需要转换的像素宽度数组
var pixelWidths = [360, 720, 1080];
// 遍历数组,逐个转换并输出结果
pixelWidths.forEach(function (x) {
var percent = screen.widthToPercent(x);
if (percent !== null) {
printl("像素宽度 " + x + " 转换为百分比: " + percent + "%");
} else {
printl("转换失败,请检查权限或设备支持情况。");
}
});
// 第十一个方法:⌛screen.percentToWidth 函数
// 调用 screen.percentToWidth 函数,将 12.23% 转换为实际屏幕宽度
var width = screen.percentToWidth(0.1223);
// 检查返回值是否为 null
if (width !== null) {
// 成功转换,打印结果
printl("12.23% 的屏幕宽度为: " + width + " 像素");
} else {
// 转换失败,提示用户检查参数或权限
printl("转换失败,请检查参数或权限设置。");
}
// 第十二个方法:⌛ 使用代理模式截图
// 参数:宽度 374 像素,高度 666 像素,质量 100
var img = agent.screenShot(374, 666, 100);
// 检查返回的截图对象是否为 null
if (img !== null) {
printl("截图成功!");
// 这里可以对 img 对象进行其他操作,例如保存、处理或OCR识别等
} else {
printl("截图失败,请检查权限或参数!");
}
复制代码
3.jpg
(357.67 KB, 下载次数: 0)
2025-3-25 07:25 上传
4.jpg
(350.62 KB, 下载次数: 0)
2025-3-25 07:25 上传
5.jpg
(362.7 KB, 下载次数: 0)
2025-3-25 07:25 上传
代码的简要说明和一些注意事项:
MLKitOcr 文字识别:
代码中使用了 MLKitOcr 方法来进行文字识别。'zhs' 和 'zh' 都是中文的识别代码,但通常使用 'zh'。
识别结果通过 getAllString() 方法获取,然后打印出来。
使用完截图后,记得调用 recycle() 方法来释放资源。
截图并压缩:
使用 screenShot 方法可以指定截图的尺寸和压缩质量。
检查截图是否成功后再进行后续操作。
计算面积占比:
areaToPercent 方法用于计算特定面积占屏幕的百分比。
使用前需要确保输入的面积值是合理的。
DIP 转换为像素:
dip2px 方法将 DIP(设备独立像素)转换为具体的像素值。
这对于需要适配不同屏幕密度的应用非常有用。
获取屏幕旋转方向:
getRotation 方法获取屏幕的旋转方向,返回值是一个表示旋转角度的整数。
根据旋转方向可以调整应用的布局以适应不同的屏幕方向。
获取屏幕高度:
getScreenHeight 方法获取当前设备的屏幕高度。
可以根据屏幕高度动态调整应用的布局。
获取屏幕宽度:
getScreenWidth 方法获取当前设备的屏幕宽度。
同样可以用于动态调整布局。
高度坐标转换为百分比坐标:
heightToPercent 方法可以将真实的 y 坐标转换为屏幕高度的百分比坐标。
这对于需要适应不同屏幕尺寸的坐标操作很有帮助。
像素转换为 DIP:
px2dip 方法将像素值转换为 DIP。
代码中展示了如何处理单个像素值以及多个像素值的转换。
边界情况(如 0 或负数)也需要考虑。
查找特定文本并点击:
通过 findIncludeText 方法查找包含特定文本的 OCR 结果,并尝试点击该区域。
如果找到目标文本,则点击并输出成功信息;否则输出未找到的提示。
使用代理模式截图:
agent.screenShot 方法使用代理模式来截图,这种方式可能用于某些特殊场景下的截图需求。
需要确保代理模式的截图权限已正确设置。
在实际应用中,您需要根据具体的设备和应用需求来调整这些参数和逻辑。同时,也要确保应用具有相应的权限,例如访问屏幕截图的权限,以避免运行时错误。
欢迎光临 信息发布软件,b2b软件,广告发布软件 (http://postbbs.com/)
Powered by Discuz! X3.2