家好,我是公眾號3分鐘學堂的郭立員~
今天來說說崩潰重啟,我們要知道如果腳本崩潰了,腳本內所有代碼就都不會執行,所以按鍵小精靈無法自己重啟自己的,那么要解決崩潰重啟就需要借助第三方程序。
具體思路是這樣的:
①在腳本最開始部分加上開啟第三方程序的代碼,其他代碼不變
②第三方程序完成的功能是,循環檢測在運行的程序中是否有腳本的包名,如果存在說明腳本正常運行,如果不存在說明腳本崩潰了,然后模擬手動開啟腳本。
這里給大家提供兩個方法:
一、jsd插件的檢測小精靈命令
Import "jsdvip.luae"
jsdvip.StartServer
jsdvip.TestingApp (true,getScriptPath())
Do
ShowMessage "運行腳本"
Delay 2000
Loop
Function OnScriptExit
jsdvip.TestingApp(false,getScriptPath())
End Function
Function getScriptPath()
Dim path=split(GetTempDir(), "/")
getScriptPath=path(Ubound(path) - 1)
End Function
二、使用shell腳本
腳本源碼來自群友奧里給和山夆分享
Import "zm.luae"
//獲取包名
Dim pkgName=getScriptPath()
//腳本啟動懸浮窗按鈕位置
Dim ScRat=GetScreenX() / 720 //屏幕比例
Dim startX=360 * ScRat
Dim startY=1220 * ScRat
//啟動shell腳本
dim s=Thread.Start(StartSh, pkgName,startX, startY)
Delay 3000
Thread.Stop (s)
TracePrint "start"
Do
Delay 2000
Loop
Function OnScriptExit
ExitSj
End Function
Function ExitSj()
file.Write "/sdcard/sh.txt", "sh"
End Function
Function StartSh(包名,startX,startY)
Dir.Delete ("/sdcard/sh.txt")
zm.Execute ("while(true);do names=$(ps);A=$names ;B='" & 包名 & "';if [[ $A==*$B* ]] then echo '包';sleep 2;if [ -f '/sdcard/sh.txt' ]; then names=$(ps);A=$names ;B='" & 包名 & "'; if [[ $A==*$B* ]] then break;else monkey -p " & 包名 & " -v 1&&sleep 10 && input tap " & startX & " " & startY & "&&sleep 2&&sendevent /dev/input/event4 1 114 1 && sendevent /dev/input/event4 0 0 0&& sendevent /dev/input/event4 1 114 0 && sendevent /dev/input/event4 0 0 0;break;fi fi else echo '不包含';sleep 1;monkey -p " & 包名 & " -v 1&&sleep 10 && input tap " & startX & " " & startY & "&&sleep 2&&sendevent /dev/input/event4 1 114 1 && sendevent /dev/input/event4 0 0 0&& sendevent /dev/input/event4 1 114 0 && sendevent /dev/input/event4 0 0 0;break;fi;sleep 3; done")
End Function
Function getScriptPath()
//獲取小精靈包名
Dim path=split(GetTempDir(), "/")
getScriptPath=path(Ubound(path) - 1)
End Function
這種方式使用了多線程,單獨弄了一個線程啟動shell腳本,我嘗試了改成單線程,發現啟動shell的部分,由于是shell腳本在循環執行,所以執行execute命令不會停止,導致后面的腳本代碼不能執行,無法改成單線程。
總結一下,兩種方法的思路是一樣的,都是檢測包名是否存在,確定崩潰后模擬開啟腳本。
這種思路存在一個弊端是無限重啟,為了解決這個問題上面兩種方面我都加了這段代碼
Function OnScriptExit
//結束檢測
End Function
jsd 插件是自帶停止檢測命令
shell腳本是通過判斷一個文件是否存在作為檢測的開關
雖然加上這段代碼,但是我在測試時,手動關閉腳本還會檢測崩潰重啟,只有腳本正常運行完結束才能停止檢測。
不知道是不是打包工具的原因,手動停止并沒有執行OnScriptExit命令。
如果遇到無限重啟的情況,就只能重啟手機或者模擬器結束腳本了。
好了就這些內容,覺得還行幫忙點個贊~
=正文完=
篇教程給大家介紹一下按鍵精靈連接時常見的幾種無法連接問題,本篇課程我們整合了多種無法連接到按鍵精靈手機助手的問題
按鍵精靈手機助手會存在各種無法連接到安卓模擬器和手機設備的問題,有的時候在中午還可以連接,但是到了下午就無法連接了,那么針對這些問題,我們準備了幾種常見的解決問題方案,希望能夠幫助到大家.
第一種方法:檢查按鍵精靈手機助手和按鍵精靈APP版本,如果版本相差較大是會導致連接失敗的,所有盡可能將按鍵精靈手機助手和按鍵精靈APP升級到同一個版本.
第二種方法:將按鍵精靈的APP卸載,然后打開按鍵精靈手機助手的安裝目錄,找到apk文件夾,將名為MobileAnjian.apk程序安裝到手機設備或者安裝模擬器中,與第一種方法原理相似.
第三種方法:注意打開按鍵精靈手機助手和手機設備及安卓模擬器的順序,正確打開方式為先打開安卓模擬器或者手機設備,然后在打開按鍵精靈手機助手.這個原理主要是先讓安卓模擬器和手機設備中的按鍵精靈APP先加載他的連接程序.防止因為連接程序啟動失效導致無法連接.
第三方法:關閉安卓模擬器或者手機設備,以及按鍵精靈手機助手,重啟電腦然后清理一下注冊表,然后依次打開安卓模擬器或者手機設備,然后在打開按鍵精靈手機助手,等檢測窗口提示發現1臺手機設備后,點擊連接即可.(注意:重啟能夠解決80%以上的問題)
那么本篇教程的我們就先講解到這里
知識點總結:
1:保證按鍵精靈手機助手的版本號和按鍵精靈APP的版本號幾乎一致。
2:萬能的重啟,等待檢測窗口提示發現1臺手機設備后再點擊連接。
3:以上教程是由金豬腳本團隊編輯提供.原創不易轉載請標明出處。
金豬腳本(原飛豬腳本)以按鍵精靈教學為主,涉及UiBot,Python,Lua等腳本編程語言,教學包括全自動辦公腳本,游戲輔助腳本,引流腳本,網頁腳本,安卓腳本,IOS腳本,注冊腳本,點贊腳本,閱讀腳本以及網賺腳本等各個領域。想學習按鍵精靈的朋友可以添加金豬腳本粉絲交流群:554127455 學習路上不再孤單,金豬腳本伴你一同成長
1.WQM簡介
2.瀏覽功能說明
軟件界面
從上至下分別為:標題欄、瀏覽控制區、擴展工具欄、標簽欄、頁面瀏覽區、狀態欄。如圖2.1.1所示。
2.1.標題欄
標題欄:標題欄從左至右分別為圖標、網頁名稱、瀏覽器名稱版本號,右端為控制按鈕
2.2.瀏覽控制區
瀏覽控制區域同IE,不再贅述
2.3.擴展工具欄
腳本按鈕:啟動按鍵精靈、直接調用使用按鍵精靈執行指定腳本等功能;
開始錄制、停止/保存 按鈕可以用來進行錄制腳本呢。模式選擇按鈕可以用來切換錄制模式。
網頁分析:可以打開網頁分析器。
2.4.狀態欄
狀態右側會一次顯示:鼠標當前坐標、滾動條位置與當前窗口大小信息,都以像素為單位。
3.與按鍵精靈配合使用 默認情況下,WQM會跟按鍵精靈安裝在同一目錄下,點擊工具欄上的“腳本”按鈕會自動啟動按鍵精靈,并將按鍵精靈的腳本列入菜單中,點擊菜單項即可啟動對應的腳本。
在按鍵精靈目錄下錄制的腳本也能直接保存到按鍵精靈中。
在腳本菜單中使用“下載腳本”功能,能夠直接從按鍵精靈代碼庫中下載腳本,下載下來的腳本將自動保存到按鍵精靈腳本目錄下。
3.1.錄制
3.1.1.錄制模式
WQM具有三種錄制模式可供選擇,WQM啟動時默認錄制模式為“網頁錄制模式”,點擊 按鈕,可以彈出錄制模式選擇對話框,如圖所示,錄制過程會加入實際的操作延時;
圖3.4.1
錄制模式設置
1)自動模式:由WQM自動決定對事件采取何種錄制方式,如果能夠采用元素控制,就采用網頁錄制,如果無法通過元素來控制,則采用鍵盤鼠標動作錄制方式。【該功能還在開發中】
2)網頁模式:只錄制網頁上的元素操作的模式,能為純網頁操作提供精確的錄制與操作,同時也能夠完美的支持后臺操作。缺點是無法支持Flash、SilverLight或者高級的Ajax操作;
3)模擬模式:對于網頁上的操作采用錄取鍵盤鼠標動作的錄制方式,能夠操作Flash、SilverLight與Ajax拖動等操作。
3.2.錄制
從WQM工具欄上
按鈕 啟動錄制命令,即可對當前瀏覽器中所有的動作進行錄制。在錄制開始后,系統將根據相應的錄制模式記錄用戶的操作。此時錄制按鈕變成
,點擊暫停錄制,按鈕狀態變為
,點擊可以繼續錄制。此時點擊按鈕將停止錄制用戶動作,該圖標狀態變為
狀態,點擊保存,將彈出一個輸入腳本名稱的對話框,輸入腳本名稱即可完成腳本保存動作。
打開按鍵精靈可以編輯該腳本或運行該腳本。
3.3.網頁分析
WQM提供強大的網頁分析功能,能夠幫助用戶詳細、直觀的分析網頁。網頁分析主要有以下功能:
1)實時網頁分析器
點擊工具欄上的“網頁分析”按鈕,或者按熱鍵F9,則啟動網頁分析功能。此時將在窗口下方顯示網頁分析器窗口,在網頁上移動鼠標,分析器窗口中將顯示出鼠標所指向的網頁元素的詳細信息。同時網頁上所指向的網頁元素也會突出顯示。按熱鍵F9可以暫停分析功能。
網頁分析器中具有測試特征字符串的功能,點擊測試特征串,將會顯示該特征字符串對應的元素個數,如果能匹配的元素個數低于五個,將會將焦點設置到第一個元素,并閃爍顯示匹配的元素。3.4.WQM插件說明
請參考插件命令詳細說明與內置的命令說明
4.WQM簡明開發教程
4.1.開發準備
1)安裝按鍵精靈7.1版(已包括網頁按鍵精靈組件)
4.2.編寫第一個WQM腳本
1)從桌面上點擊
運行網頁按鍵精靈。
2)點擊
按鈕,可以啟動按鍵精靈,也可以直接執行選中的網頁按鍵精靈腳本;
3)點擊“啟動按鍵精靈”菜單項,啟動按鍵精靈;
4)點擊“新建”按鈕,新建一個腳本;
5)展開“插件命令”,選擇“Web網頁”插件
6)選擇“Bind”命令,參數設置為“wqm.exe”,返回值設置為ProcessID 。
7)判斷ProcessID值,如果該值為0,則表示綁定WQM失敗,停止腳本運行;
8)選擇插件的Go命令,參數設置為“www.baidu.com”,返回值為空;插入該命令;如果加載一個比較大的頁面,該命令會等待當前頁面加載完畢之后才會執行后面的命令,所以這里并不需要使用delay。
9)在已運行的WQM中輸入www.baidu.com并進行瀏覽,然后點擊“網頁分析”按鈕;
10)按熱鍵F12,將鼠標移動到輸入關鍵詞的搜索框上,再按F12停止,可以從下方的網頁元素詳細分析窗口中得知該文本框ID為kw;
11)回到按鍵精靈,選擇插件的HtmlInput命令,參數輸入:”按鍵精靈”,”id:kw”;
12)回到WQM中,按F12,將鼠標移動到“百度一下”按鈕上,可以看到該按鈕的ID為sb;
13)回到按鍵精靈,選擇插件的Click命令,參數輸入”id:sb”,點擊插入;
14)完成的腳本源代碼如下所示:
a)Plugin ProcessID=Web.Bind("WQM.exe")
b)If ProcessID=0
c)EndScript
d)EndIf
e)Plugin Web.Go("www.baidu.com")
f)Plugin Web.HtmlInput("按鍵精靈","id:kw")
g)Plugin Web.HtmlClick("id:sb")
15)點擊“保存腳本”,指定一個腳本名稱,至此您的第一個腳本完成,能夠自動上百度,并搜索按鍵精靈關鍵字;
4.3.錄制第一個腳本
目前網頁按鍵精靈只支持模擬模式錄制,網頁錄制模式將在下一個版本中添加。
說明:
錄制時會自動加上操作延時,回放時請按照需要進行調整;
按鍵動作回放目前不夠穩定,不能在最小化狀態進行回放,后臺回放
注意:
下面開始錄制:
1)啟動網頁按鍵精靈
2)點擊“模擬模式”按鈕,設置模擬模式錄制選項,去掉“記錄鼠標移動”選項,點確定;
3)點擊“錄制腳本”按鈕
4)打開 www.kaixin001.com
5)輸入用戶名、密碼登錄
6)點擊“買房子”組件
7)點擊“花園”選項
8)點擊“下一個好友”
9)點擊“偷菜圖標”
10)點擊每一塊可偷的菜地
11)偷完之后點“停止錄制”,再點“保存腳本”按鈕,輸入一個腳本名稱保存
12)關閉按鍵精靈,重新啟動按鍵精靈,運行該腳本;