按键精灵的5级开发认证,笔试题参考

4题是抄的,只是为了过级。最后得93分,可能代码还是不够最优,有看出的大大希望能不吝指点。


1、写一个脚本,要求启动时,记录(录制)当前鼠标的移动轨迹,记录结束时,执行反相操作,注意操作速度不可偏差过大。

//就是循环记录鼠标位置再移动的过程,代码略

2、请提供至少两种判断程序卡死(无响应)的思路,请写出关键代码.请写出代码
//1 颜色判断,目标程序中经常变动的2个点颜色,如果在一定的时间内没有变化,说明程序卡死

/*---------------------------------------------------------------------------------------*/
MessageBox "以下是第一种判断方式,颜色判断" & vbcrlf & vbcrlf _
& "为了正常结束脚本,请不要在运行期间手动操作"  & vbcrlf & vbcrlf _
& "点击确定继续。"
/*---------------------------------------------------------------------------------------*/

Dim err
err = true
counts=0

'回到桌面
KeyDown "Win", 1
KeyPress "D", 1
KeyUp "Win", 1

While err
	
	IfColor 450,200,"ffffff",1 Then  
		counts = counts + 1 
	End If
	
	IfColor 250,260,"ffffff",1 Then  
		counts = counts + 1 
	End If
    	
	'多次验证防止误判
	If counts > 5 Then 
		err = False
		MessageBox  Hwnd & " 检测到已经卡死,点击确定继续。"
	End If
	
	Delay 500

Wend

/*------------------------------------------------------------------------------------------------------*/
MessageBox "以下是第二种判断方式,API检测目标程序是否挂起" & vbcrlf & "点击确定继续。"
/*------------------------------------------------------------------------------------------------------*/

//2 API看目标程序是否挂起
 Private Declare Function IsHungAppWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
 
 Dim Hwnd
 Hwnd = Plugin.Window.MousePoint()

 If IsHungAppWindow(Hwnd) = 0 Then   '0正常;1无响应
	MessageBox Hwnd & " 正常,点击确定退出脚本。"
 Else 
	MessageBox Hwnd & " 卡死(无响应),点击确定退出脚本。"
	'相关处理代码
 End If

EndScript

 3、写一个脚本,在画图工具中画圆半径不小于100,而后在圈内画正方形四角必须与圈重合。
提示:推荐使用Bkgnd命令来键鼠操作。(可选)
//写一个脚本,在画图工具中画圆半径不小于100,而后在圈内画正方形四角必须与圈重合。
//提示:推荐使用Bkgnd命令来键鼠操作。(可选) 
Dim Hwnd, Hwnd2, Hwnd3
Dim x, y, x0, y0, l, n, r
Dim v, i, j, k

SetSimMode 1

Call RunApp("mspaint.exe")   
Delay 1000   

//查找子窗口句柄
Hwnd = Plugin.Window.Find("MSPaintApp", 0)
Hwnd2 = Plugin.Window.FindEx(Hwnd,0,"AfxFrameOrView42u", 0)
Hwnd3 = Plugin.Window.FindEx(Hwnd2,0,"Afx:1000000:8", 0)

//-----------------------------------------画圆
//设置圆心坐标
x0=110:y0=110
//设置点间距
l=5
//初始化角度
n=0
//设置第一圈半径
r=100

While n < 3.1415926 * 2  
    x=x0+r*cos(n)
    y = y0 - r * sin(n)
    
    Plugin.Bkgnd.Moveto Hwnd3, x, y
    Plugin.Bkgnd.LeftDown Hwnd3, x, y
    
    Delay 5
    
    // l/r:点距除以半径,取得2点间相对圆心的角度
    n = n + l / r
    
Wend
    
Call Plugin.Bkgnd.LeftUp(Hwnd3, x, y)


//-----------------------------------------画正方形
//根据圆心和边长,计算正方形的4个角,根号2取1.41421356
l = 100 / 1.41421356
x = 110 - l '横左
y = 110 - l '纵坐标上
x0 = 110 + l '横右
y0 = 110 + l '纵坐标下

'横线上
For i = x to x0
		Plugin.Bkgnd.Moveto Hwnd3, i, y
		Plugin.Bkgnd.LeftDown Hwnd3, i, y
		i = i + 2	
Next
 Call Plugin.Bkgnd.LeftUp(Hwnd3, i, y)

//2013-8-16补充,因为是直线,直接给出开始坐标和结束坐标就好,不需要循环... ... 如下:
Plugin.Bkgnd.Moveto Hwnd3, x, y
Plugin.Bkgnd.LeftDown Hwnd3, x, y
Plugin.Bkgnd.Moveto Hwnd3, x, y0
Plugin.Bkgnd.LeftUp(Hwnd3,x , y0)

//省略部分,同上
EndScript

4、利用 ShowScrTXT 命令制作一个放大镜,效果类似抓抓工具的放大镜,可以放大显示鼠标指向的5*5区域的颜色.请写出代码
Dim x, y, x1, x2, y1, y2, st_x, st_y
Dim scr_x1, scr_y1, scr_x2, scr_y2

MessageBox "【确定】后开始运行放大镜,【F12】键退出。"

While True
        Call FDJ()
        Delay 10
Wend

//放大镜函数
Function FDJ()
        //放大镜的起点坐标
        st_x = 0
        st_y = 0
        
        //获取鼠标的坐标
        GetCursorPos x, y
        
        //计算5*5区域范围
        x1 = x - 2
        x2 = x + 2
        y1 = y - 2
        y2 = y + 2
        
        //获取并输出5*5区域内所有颜色
        For a = x1 To x2
                For b = y1 To y2
                        RtColor = Plugin.Color.GetPixelColor(a, b, 1)
                        //其中:4 - x2 + a = 5 - (x2 - a + 1),以下同理
                        scr_x1 = st_x + (4 - x2 + a) * 6
                        scr_y1 = st_y + (4 - y2 + b) * 6
                        scr_x2 = scr_x1 + 6
                        scr_y2 = scr_y1 + 6
                        Call Plugin.Msg.ShowScrTXT(scr_x1, scr_y1, scr_x2, scr_y2, "█", RtColor)
                Next
        Next
End Function


5、筛选出100以内所有个位数加十位数等于10的数,例如82,8+2=10满足条件,请写出代码

//代码略




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
按键精灵是一款功能强大的自动化工具,可以用于开发小工具应用。它支持使用e4x编写界面,并可以将JavaScript打包为apk文件。按键精灵还支持使用Root权限以提供更强大的屏幕点击、滑动、录制功能和运行shell命令。您可以使用按键精灵的录制功能来记录您的操作,然后将录制的动作回放成为一个js文件或二进制文件。这样,您就可以开发出各种自动化工具应用。 以下是按键精灵打包工具开发的一个示例: 1. 使用e4x编写界面: ```javascript // 创建一个简单的界面 var window = new Window("dialog", "按键精灵打包工具"); window.orientation = "row"; // 添加一个文本框 var textBox = window.add("edittext", undefined, "请输入内容"); textBox.characters = 20; // 添加一个按钮 var button = window.add("button", undefined, "点击"); button.onClick = function() { // 获取文本框中的内容 var input = textBox.text; // 在控制台输出内容 $.writeln("您输入的内容是:" + input); } // 显示界面 window.show(); ``` 2. 将JavaScript打包为apk文件: 按键精灵提供了打包工具,可以将您编写的JavaScript代码打包成为一个apk文件。您可以使用以下命令将JavaScript文件打包成apk文件: ```shell aktool -c -f your_script.js -o output.apk ``` 以上是按键精灵打包工具开发的简单介绍和示例。您可以根据自己的需求使用按键精灵开发各种自动化工具应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值