autojs奇葩代碼的簡單介紹

本文目錄一覽:

autojs腳本實現自動接聽微信、QQ音視頻通話

//在autojs中對腳本設置為一分鐘運行一次。需開啟無障礙里的autojs,在最近任務鎖定autojs並且允許autojs後台自啟動運行(可查詢自己手機怎麼開啟)

//小圖.jpg可以用手機截屏後用手機自帶圖片編輯功能裁切出含「接受」部分的小圖並放下面的目錄下

//鑒於autojs的截圖函數的不穩定性,可以把代碼截的圖用代碼images.save()保存到手機上也用手機自帶圖片編輯功能裁切一張小圖與手機自帶截屏功能截的圖製作的小圖兩者都加入判斷以提高成功率

//這個主要針對網上已有的antoanswer.app在豎屏狀態下運行穩定,卻無法在橫屏時自動接聽而設計。豎屏狀態下建議下載autoanswer.app(注意不同版本的效果不一樣,要找到適合自己手機的版本)

if(!requestScreenCapture()){

toast(“請求截圖失敗”);

exit();

}

//requestScreenCapture(true);

sleep(2000);

var img=captureScreen();

var temp=images.read(“/storage/emulated/0/小圖.jpg”);

var p=findImage(img,temp);

if(p){

click(p.x+temp.getWidth()/2,p.y+temp.getHeight()/2);

}else{

}

autojs死巡環內存爆炸

內存溢出是一種程序運行會出現的錯誤,當程序所需要的內存大於剩餘內存(機器能提供給你的內存),就會拋出內存溢出的錯誤

var obj = {}

for (var i = 0; i 100000000; i++) {

obj[i] = new Array[100000000]

}

登錄後複製

內存泄漏

佔用的內存沒有及時的釋放從而失去控制,從而造成內存的浪費。內存泄漏多了就容易引發內存溢出。

常見的內存泄漏案例:

1、意外的全局變數

function fn() {

var name = ‘張三’

var age = 18

address = ‘上海’ // 沒有用var定義,這時候address是全局的

}

fn() // 因為address會被變數提升到了全局變數,fn調用完成後address還保留在內存中

登錄後複製

2、沒有及時清除定時器

// 沒有及時清理定時器

var timer = setInterval(() = {

console.log(new Date())

}, 1000);

// clearInterval(timer) 及時清理定時器

登錄後複製

3、沒有及時清理閉包

// 函數執行完後, 函數內的局部變數沒有釋放, 佔用內存時間會變長,容易造成內存泄露

function fun() {

var a = 5

function getA() {

return a

}

return getA

}

var f = fun()

f() // 5

// f = null 讓內部函數成為垃圾對象,釋放閉包

登錄後複製

4、沒有及時清理清理dom元素的引用

var dom = document.getElementById(‘box’)

document.body.removeChild(dom) // dom刪除後,下面依然能列印出整個div

console.log(dom) // div id=”box”嘿嘿嘿/div

dom = null

console.log(dom) // 釋放資源,解除引用

登錄後複製

5、addEventListener

監聽事件的解除,監聽的時候addEventListener,在不監聽的時候要使用removeEventListener。

求把電腦用的按鍵精靈代碼轉譯為auto.js用的代碼

主要是Goto 繼續——Rem 繼續 如何轉化和 顏色判斷中的「如果是則執行A,否則執行B」怎麼寫 其他的沒問題了 下面是參考代碼 Rem 繼續 MoveTo 826, 296 Delay 1000 LeftClick 1 Delay 5000 IfColor 928,663,”232352″,2 Then MoveTo 928,663 Delay 3000 LeftClick 1 Else MoveTo 706, 577 LeftClick 1 MoveTo 801, 249 Delay 3000 LeftClick 1 MoveTo 728, 577 Delay 3000 LeftClick 1 MoveTo 614, 447 Delay 3000 LeftClick 1 MoveTo 739, 291 Delay 3000 LeftClick 1 MoveTo 952, 652 Delay 3000 LeftClick 1 End If Delay 120000 For 20 Delay 5000 IfColor 1140,680,”FFFFFF”,0 Then MoveTo 1145, 678 LeftClick 1 Delay 15000 Goto 繼續 Else MoveTo 790, 450 Delay 3000 LeftClick 1 MoveTo 728, 580 Delay 3000 LeftClick 1 End If Next

auto.js中怎麼循環好?我用百度複製的function auto()過一段時間就熄火了,代碼就是下邊的

exit() 執行了。如果我沒猜錯的話,exit裡面有throw語句;或者你裡面的某一個函數報錯了,報錯不是用console.error 而是用了throw語句,或者直接原生報錯。改良一下應該是。

function auto() {

//循環代碼

try {

//請求截圖

if (!requestScreenCapture()) {

toast(“請求截圖失敗”);

exit();

}

//截圖命名為9.png

captureScreen(“/sdcard/9.png”);

sleep(2000)

// 讀取本地圖片/sdcard/1.png

var img = images.read(“/sdcard/9.png”);

// 判斷圖片是否載入成功

if (!img) {

toast(“沒有該圖片”);

exit();

}

// 在該圖片中找色,指定找色區域為在位置(400, 500)的寬為300長為200的區域,指定找色臨界值為4

var point = findColor(img, “#70bdc8”, {

region: [1768, 137, 50, 20],

threshold: 4

});

if (point) {

toast(“找到啦:”);

click(1909, 153)

sleep(7000)

} else {

toast(“沒找到”);

}

} catch (e) {

console.error(e)

} finally {

//多少秒執行一次 上面的參數就填 秒數乘1000 上述 一秒調用一次

setTimeout(auto, 120000);

}

}

auto();

還有sleep應該不起作用,js沒有sleep方法。正確函數應該是

async function auto() {

//循環代碼

try {

//請求截圖

if (!requestScreenCapture()) {

toast(“請求截圖失敗”);

exit();

}

//截圖命名為9.png

captureScreen(“/sdcard/9.png”);

await new Promise(rs={

setTimeout(()={

rs(“ok”)

},2000)

})

// 讀取本地圖片/sdcard/1.png

var img = images.read(“/sdcard/9.png”);

// 判斷圖片是否載入成功

if (!img) {

toast(“沒有該圖片”);

exit();

}

// 在該圖片中找色,指定找色區域為在位置(400, 500)的寬為300長為200的區域,指定找色臨界值為4

var point = findColor(img, “#70bdc8”, {

region: [1768, 137, 50, 20],

threshold: 4

});

if (point) {

toast(“找到啦:”);

click(1909, 153);

await new Promise(rs={

setTimeout(()={

rs(“ok”)

},7000)

})

} else {

toast(“沒找到”);

}

} catch (e) {

console.error(e)

} finally {

//多少秒執行一次 上面的參數就填 秒數乘1000 上述 一秒調用一次

auto();

// setTimeout(auto, 120000);

}

}

auto();

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/252807.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 02:15
下一篇 2024-12-14 02:15

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29

發表回復

登錄後才能評論