QuickMacroForNetEase

按键精灵的语法和逻辑相对来说属于比较简单那种.
在使用过程当中完全可以根据需要,现学现用.
不过一些API在使用的过程当中还是需要有一定的了解之后, 才能在需要的时候立马能够想到.

在手机操这方面, 按键精灵的Q小语言相对来说比较方便.
不管是获取屏幕还是在使用的过程当中,有一些非常好用的借口提供. 如果采用编程语言, 需要提前部署好相当多的包和环境.

在使用过程当中, 需要搭配按键精灵手机助手, 和模拟器.
同时在模拟器中安装按键精灵手机版. 这时候通过PC上的按键精灵手机助手, 可以连接虚拟机. 实现对界面的控制.

在使用脚本的过程当中需要开启安卓的ROOT权限, 不管是获取屏幕还是运行脚本都需要权限.

SetScreenScale 1920,1080,0

// 内容
Dim SayHello
SayHello = "Content"

// 总次数
Dim SayHeyTimes
SayHeyTimes = 20

// 计数器
Dim Counter
Counter = 0




// 启动程序
Function initApp
    KillApp "com.netease.cloudmusic"
    ShowMessage "重启应用"
    Delay 1000
    RunApp "com.netease.cloudmusic"
    Delay 4000
End Function

// 寻找左上角菜单
Function FindSetButton(startButton)
    Dim intX,intY
    FindMultiColor 0,0,0,0,"333333","0|10|333333,0|21|333333,28|21|333333,28|11|3F3F3F,28|0|333333,15|2|FFFFFF,11|9|CDCDCD,10|20|666666",0,0.9,intX,intY
    If intX > -1 And intY > -1 Then
        TracePrint intX
        TracePrint intY
        startButton = Array(intX,intY)
        FindSetButton=startButton
    End If
	
End Function
// 寻找设置按钮
Function FindSet(setSignal)
    Dim intX,intY
    FindMultiColor 0,0,0,0,"4D4D4D","9|2|4E4E4E,17|1|4D4D4D,26|1|4D4D4D,14|15|4D4D4D,13|-14|828282,13|-4|6B6B6B,13|2|FFFFFF,50|-8|343434",0,0.9,intX,intY
    If intX > -1 And intY > -1 Then
        TracePrint intX
        TracePrint intY
		
        setSignal = Array(intX,intY)
        FindSet=setSignal
    End If
End Function

// 寻找按钮
Function findNearlyButton(nearlyButton)
    Dim intX,intY
    FindMultiColor 0,0,0,0,"4F4F4F","0|8|515151,0|22|4D4D4D,-11|2|717171,-3|2|505050,1|4|FFFFFF,4|3|585858,11|2|6A6A6A,38|-1|333333",0,0.9,intX,intY
    If intX > -1 And intY > -1 Then
        TracePrint intX
        TracePrint intY
        nearlyButton = Array(intX,intY)
        findNearlyButton=nearlyButton
    End If

End Function

// 人标识
Function findNearlySignal(nearlySignal)
    Dim intX,intY
    FindMultiColor 0,0,0,0,"747474","-10|13|F9F9F9,-11|18|DDDDDD,-17|15|404040,0|31|6A6A6A,16|16|565656,-11|16|464646,45|4|333333,45|29|454545",0,0.9,intX,intY
    If intX > -1 And intY > -1 Then
        TracePrint intX
        TracePrint intY
        nearlySignal = Array(intX,intY)
        findNearlySignal=nearlySignal
    End If
End Function

// 性别标志
Function findFemale(femaleSignal)
    Dim intX,intY
    FindMultiColor 0,0,0,0,"B685FF","16|-16|B685FF,-1|-5|B685FF,6|0|DFCAFF,16|-6|B685FF,5|-16|B685FF,7|-6|CFAEFF,15|-15|D5B9FF,-2|2|FFFFFF,14|-15|FEFDFF",0,0.9,intX,intY
    If intX > -1 And intY > -1 Then
        TracePrint intX
        TracePrint intY
        femaleSignal = Array(intX,intY)
        findFemale=femaleSignal
    End If

End Function

// 通过关注标志找按钮
Function findFollowButton(followButton)
    Dim intX,intY
    FindMultiColor 0,0,0,0,"3A3AFF","129|0|3A3AFF,21|-24|3A3AFF,109|-25|3A3AFF,19|25|3A3AFF,109|25|3A3AFF,36|0|FFFFFF,50|0|FFFFFF,43|-7|FFFFFF,43|7|FFFFFF",4,0.9,intX,intY
    If intX > -1 And intY > -1 Then
        TracePrint intX
        TracePrint intY
        intX = intX + 200
        followButton = Array(intX,intY)
        findFollowButton=followButton
    End If
End Function

// 返回上个界面
Function backPrePage()
    Tap 70,88
End Function

// 点击 编辑内容
Function clickContentButton()
    Tap 100,1050
End Function

// 点击 发送内容
Function clickSendContentButton()
    Tap 1870,1035
End Function

// 判断是否有发送过信息

Function findSendMessage(sendMessageContent)
	
    Dim intX,intY
    FindMultiColor 0,0,0,0,"3A3AFF","73|0|4343FF,11|20|3A3AFF,-31|0|4343FF,-8|45|E6E6E6,-104|129|4452FC,70|126|4452FC,52|125|FFFFFF,34|190|4452FC,-138|154|4452FC",4,0.9,intX,intY
    If intX > -1 And intY > -1 Then
        TracePrint intX
        TracePrint intY
        sendMessageContent = Array(intX,intY)
        findSendMessage=sendMessageContent
    End If
End Function



// 上滑400
Function swipDown
    Swipe 1000, 600, 1000, 200
End Function

// 开始应用程序
Function start
    Dim startButton
    Dim i
    i = 0
    While i <= 5 and IsNull(startButton)
        startButton = FindSetButton(startButton)
    	
        If not IsNull(startButton) Then 
            TracePrint startButton[1],startButton[2]
            Tap startButton[1],startButton[2]
            Exit While
        End If
        If i = 5 Then 
            Call initApp()
            i = 0
        End If
        i = i+1
        TracePrint "try", i
        Delay 1000
    	
    Wend
End Function


// 打开功能
Function nearlyPeople
	
    // 确定页面符合要求	
    Dim setSignal
    setSignal = FindSet(setSignal)
    
    If IsNull(setSignal) Then
        TracePrint "非功能页面"
        Call initApp()
        Call start()
    End If
	
    TracePrint "123"
    
    //  寻找功能按钮
    Dim i = 0
    Dim nearlyButton
    While i <= 5 and IsNull(nearlyButton)
        nearlyButton=findNearlyButton(nearlyButton)
        If not IsNull(nearlyButton) Then 
            TracePrint nearlyButton[1],nearlyButton[2]
            Tap nearlyButton[1], nearlyButton[2]
            ShowMessage "进入页面"
            Delay 2000
            Exit While
		
        End If
        call swipDown()
        Delay 1000
        i = i + 1
        TracePrint i
    Wend

End Function




// 筛选
Function filterPeople
    ShowMessage "确认页面"
    Dim nearlySignal
    nearlySignal = findNearlySignal(nearlySignal)
    If IsNull(nearlySignal) Then
        TracePrint "非功能页面"
        Call nearlyPeople()
    End if
    Delay 1000

    ShowMessage "开始筛选"
    Delay 1000
	
    Dim femaleSignal
    Dim i=0
    While i<5
		
        femaleSignal = findFemale(femaleSignal)
		
        If not IsNull(femaleSignal) Then 
            TracePrint femaleSignal
            Tap femaleSignal[1], femaleSignal[2]
            i =0
            Delay 1000
            Call sendMessage()
            
        	Delay 1000
            Call swipDown()
        	Delay 3000
    		
        End If
		
        // 向下滑		
        Call swipDown()
        Delay 1000
        i=i+1
    Wend
	
End Function

// 发送信息
// 1. 找到发送按钮, 找不到返回按键
// 2. 进入发送界面, 核对是否发送过信息
// 3. 如果发送过信息则直接返回, 没有发送过信息就发送信息后返回
// 4. 再次返回.

Function sendMessage
    i = 10
    While i <> 0
        i = i - 1
    Wend
    //当循环条件成立的时候,反复执行循环体

    Dim followButton
    Dim i=0
    While i < 3 and IsNull(followButton)
        followButton = findFollowButton(followButton)
        Delay 1000
        i = i + 1
        
    Wend
	
    If not IsNull(followButton) Then 
        Tap followButton[1], followButton[2]
        ShowMessage "发送信息"
        Call sendMessageProcess()
		
        Delay 1000
        
    End If
	
    Call backPrePage()
	
End Function



// 发送信息过程
Function sendMessageProcess()
    // 判断是否发送过信息
    Dim sendMessageContent
    Dim i
    i=0
    // 检测3次
    While i < 3 and IsNull(sendMessageContent)
        sendMessageContent = findSendMessage(sendMessageContent)
        i = i + 1
		
    Wend
    // 有内容则直接返回
    TracePrint sendMessageContent
    
    If IsNull(sendMessageContent) Then 
//        TracePrint "~无记录: 发送信息"
		Call sendingTheMessage()
        
        
    	Counter = Counter + 1
    	If Counter > SayHeyTimes Then 
    		ShowMessage "打招呼次数已经足够"
    		TracePrint "Enough, Ending The Script"
    		EndScript
    		
    	End If
    	
    	
    	
        
    End If
	
    // 无内容则发送信息
    If not IsNull(sendMessageContent) Then 
        TracePrint "!存在记录: 返回" 
    End If
    
    Delay 1000
    Call backPrePage()
    Delay 1000
	
End Function

Function sendingTheMessage()
    TracePrint "发送信息过程ing"
    Call clickContentButton()
	
    Delay 2000
    InputText SayHello
    Delay 2000
	
    Call clickSendContentButton()
    Delay 4000
	
	
End Function




// 主程序

//Call start()

//Call nearlyPeople()

Call filterPeople()
//Call sendMessage()


QuickMacroForNetEase

上一篇:HTML基础 input hidden 隐藏域


下一篇:HTML基础 ol start 从第几个开始编号