wkdxz 发表于 2022-9-26 17:39

[AutoHotKey] 模拟键鼠,安全教育自动做题:2022年中小学生(幼儿)秋季开学安全第...

本帖最后由 wkdxz 于 2022-9-26 18:47 编辑



代码头部,具体功能直接看注释(全都有)
#NoEnv ;避免检查空变量是否为环境变量
#WinActivateForce ;强制激活窗口
#SingleInstance force ;强制替换旧版本脚本
Process, Priority, , High ;脚本优先级最高
DetectHiddenWindows, On ;检测隐藏窗口
SetTitleMatchMode, 2 ;窗口检测匹配部分关键词
SetWinDelay, 0 ;两个窗口切换延时
SetKeyDelay, 0 ;两次按键延时
SetMouseDelay, 0 ;两次点击延时
SetDefaultMouseSpeed, 0 ;鼠标移动速度最快
SetWorkingDir %A_ScriptDir%;设置工作目录

为各个选项设置键盘按键
A() ;直接空格确定
{
      Sleep 400
      Send {Tab}
      Sleep 100
      Send {Space}
      Return
}

B() ;按一次向下
{
      Sleep 400
      Send {Tab}
      Sleep 100
      Send {Down}
      Return
}

C()
{
      Sleep 400
      Send {Tab}
      Sleep 100
      Send {Down 2}
      Return
}

D()
{
      Sleep 400
      Send {Tab}
      Sleep 100
      Send {Down 3}
      Return
}

E()
{
      Sleep 400
      Send {Tab}
      Sleep 100
      Send {Down 4}
      Return
}

F()
{
      Sleep 400
      Send {Tab}
      Sleep 100
      Send {Down 5}
      Return
}

T() ;直接按TAB键
{
      Sleep 100
      Send {Tab}
      Sleep 100
      Return
}

使用F2热键激活,通过分割字符,逐个调用按键函数填写答案,最后将鼠标移动到提交按钮附近
F2::
      答案 = A|A|B|B|B|A|A|A|A|F|A|B||A|A|A|A|A|A|A|A|t|t||A|A|A|A|A|A|t||B|B
      Loop, Parse, 答案, |, `r ;答别的题目
      {
                chang := StrLen(A_LoopField)
                if chang > 0
                {
                        StringUpper, out, A_LoopField ;将每一行数据定义转为大写,输出为out函数
                        StringReplace, out, out, %A_SPACE%, , All ;替换out函数的无关字符
                        StringReplace, out, out, ., , All
                        StringReplace, out, out, `r`n`r`n, `r`n, All

                        if out = 对 ;对就是A
                              A()
                        if out = 错 ;错就是B
                              B()
                        if out = A
                              A()
                        if out = B
                              B()
                        if out = C
                              C()
                        if out = D
                              D()
                        if out = E
                              E()
                        if out = F
                              F()
                        if out = T
                              T()
                        send {apace}
                        sleep 100
                }
      }
      MouseMove, 450, 977
Return


AutoHotKey软件论坛里有,搜一个就是,软件安装了才能执行代码,懒得编译了。

xytf 发表于 2022-9-26 18:11

题目要是变了, 答案不是对不上了? 答案是不是有可能在前端?

wkdxz 发表于 2022-9-26 18:49

xytf 发表于 2022-9-26 18:11
题目要是变了, 答案不是对不上了? 答案是不是有可能在前端?

只针对“2022年中小学生(幼儿)秋季开学安全第一课”的选择题部分,不是全站适用的。

kexue8 发表于 2022-9-26 18:01

AutoHotKey软件下载的页面不存在或者已删除……

注册个id 发表于 2022-9-26 18:06

感谢分享,下载试用{:301_992:}

simon007 发表于 2022-9-26 18:31

学习了。
如果自动化还是挺方便的

wkdxz 发表于 2022-9-26 18:44

kexue8 发表于 2022-9-26 18:01
AutoHotKey软件下载的页面不存在或者已删除……

百度搜一个挺多的

kexue8 发表于 2022-9-26 18:59

wkdxz 发表于 2022-9-26 18:44
百度搜一个挺多的

好的,谢谢啦

meforeg 发表于 2022-9-26 19:39

油猴有脚本可以自动答题的,答案应该在前端。

wkdxz 发表于 2022-9-26 20:46

meforeg 发表于 2022-9-26 19:39
油猴有脚本可以自动答题的,答案应该在前端。

搜过了,这个题目暂时还没出,所以才有了这个脚本。
页: [1] 2 3
查看完整版本: [AutoHotKey] 模拟键鼠,安全教育自动做题:2022年中小学生(幼儿)秋季开学安全第...