;~ 并发运行的AutoHotkey脚本真机实际测试模板参考20191010.ahk
;~ 2019年10月10日
;~ 徐晓亮(aahk6188)
;~ 操作系统测试环境: Windows 7 专业版 32位 系统 On Website https://msdn.itellyou.cn/
;~ AHK系统测试环境: AutoHotkey_1.1.31.00_setup.exe On Website https://www.autohotkey.com/
;~ 并发运行可以防止错过对一些窗口的操作
;~ 并发运行可以精确等待操作时机的出现
;~ 并发运行可以使脚本运行更流畅,可以有效防止脚本应等待窗口或控件的出现而出现卡死现象

ConfigThisScript设置此脚本的参数_01() ;通过函数名直接调用函数,就像函数体的代码就在此处
Hotkey,F6,Hotkey_F6定义F6热键_02 ;创建并启用热键,当用户输入热键时立即执行热键所指向的函数。
MsgBox,请按<F6>快捷键打开记事本 ;显示热键提示信息窗口并暂停脚本执行直到用户按确定按钮控件。
return ;由于此脚本设置了热键所以脚本将会等待快捷键按下,此时脚本不会退出

;~ 接下来定义函数名是“ConfigThisScript设置此脚本的参数_01() ”的函数,
;~ 便于用SetTimer定时器或直接通过函数名调用此函数,
;~ 函数类似于子程序 (Gosub), 不过它可以从调用者那里接受参数 (输入).
;~ 同时, 函数还可以返回值给其调用者.
;~ 函数可以减少代码书写量(代码复用,代码重用),只在一处统一定义函数可以有效防止代码不一致出错,
;~ 只在一处定义便于今后修改维护,实现模块化积木化编程,
;~ 把大的任务用SetTimer定时器函数的形式切割细分为很多小功能函数使得比较困难的事情容易实现,
;~ 在工作、学习、生活、社交、人生规划等方面也可以用笔在A4纸上切割和细分,以此类推,触类旁通。
ConfigThisScript设置此脚本的参数_01()
{
#SingleInstance,force ;当此脚本已经运行时自动替换旧实例再次运行。
#Persistent ;让脚本持久运行(即直到用户关闭或遇到 ExitApp)。
#NoEnv ;不检查空变量是否为环境变量(建议所有新脚本使用)。
#WinActivateForce ;用强制的方法激活窗口。阻止任务栏按钮的闪烁.
;~ #NoTrayIcon ;不显示托盘图标。
;~ #Warn ;应用指定的 WarningMode 支持的所有警告类型.
SetWorkingDir,%A_ScriptDir% ;改变脚本的当前工作目录。
DetectHiddenWindows,On ;设置脚本可以“看见”隐藏的窗口。
SetTitleMatchMode,2 ;窗口标题匹配模式改成某个位置必须包含WinTitle。
SendMode,Input ;SendInput 通常更快更可靠. 缓存了发送期间任何物理的键盘或鼠标活动, 避免了在发送时夹杂用户的键击.

CoordMode,Mouse,Screen
CoordMode,Pixel,Screen
CoordMode,ToolTip,Screen
ListLines,Off
SetBatchLines,-1
SetStoreCapsLockMode, On

;~ SetBatchLines,
;~ SetKeyDelay,
;~ SetWinDelay,
;~ SetControlDelay,
}

Hotkey_F6定义F6热键_02()
{
; ========== 按F6热键后运行的测试代码从下一行开始 ==========

;~ 经过试验得知运行程序每次都成功所以这里用负数-500表示0.5秒后运行定时器函数
;~ 单次运行 [v1.0.46.16+]: 使用负的 周期 来表示计时器只运行一次.
;~ 例如,指定 -100 将会从现在开始的 100 ms 后运行计时器,
;~ 然后就像使用 SetTimer, Label, Off 那样禁用计时器。
SetTimer,RunExeFile运行程序_03,-500
SetTimer,SwitchToThisWindow激活窗口_04,500
;~ 不要使用某个功能函数时只需注释掉调用代码即可,无需注释函数体定义部分的代码
;~ SetTimer,ControlFocus设置焦点到指定控件_05,500
SetTimer,ControlSend发送模拟键击到控件_06,500
SetTimer,ControlClick发送鼠标按钮或鼠标滚轮事件到控件_07,500
SetTimer,SetTimerDelete禁用并删除所有Timer自动重复周期运行子程序_08,500

; ========== 按F6热键后运行的测试代码到上一行结束 ==========
}

; ========== 函数定义代码块段落代码从下一行开始,接下来集中定义各类函数,函数名以两位数字序号后缀结尾 ==========

RunExeFile运行程序_03()
{
IfWinNotExist,记事本 ahk_class Notepad
Run,notepad
}

SwitchToThisWindow激活窗口_04()
{
IfWinNotActive,记事本
{
;~ WinActivate [, WinTitle, WinText, ExcludeTitle, ExcludeText]
WinGet, WinID, ID,记事本
DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
;~ WinGetActiveTitle,WinActiveTitlekp
;~ IfInString,WinActiveTitlekp,窗口标题
}
}

ControlFocus设置焦点到指定控件_05()
{
;~ ControlFocus [, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]
}

ControlSend发送模拟键击到控件_06()
{
IfWinActive,记事本
ControlSend, Edit1,{CtrlDown}o{CtrlUp},记事本 ahk_class Notepad
}

ControlClick发送鼠标按钮或鼠标滚轮事件到控件_07()
{
;~ IfWinActive,记事本
;~ ControlClick [, Control-or-Pos, WinTitle, WinText, WhichButton, ClickCount, Options, ExcludeTitle, ExcludeText]
}

SetTimerDelete禁用并删除所有Timer自动重复周期运行子程序_08()
{
IfWinExist,记事本 ahk_class Notepad
{
IfWinActive,打开 ahk_class #32770, 地址
{
SetTimer,RunExeFile运行程序_03,Delete
SetTimer,SwitchToThisWindow激活窗口_04,Delete
;~ 不要使用某个功能函数时只需注释掉调用代码即可,无需注释函数体定义部分的代码
;~ SetTimer,ControlFocus设置焦点到指定控件_05,Delete
SetTimer,ControlSend发送模拟键击到控件_06,Delete
SetTimer,ControlClick发送鼠标按钮或鼠标滚轮事件到控件_07,Delete
SetTimer,SetTimerDelete禁用并删除所有Timer自动重复周期运行子程序_08,Delete

ToolTip,并发运行脚本测试完毕
SetTimer, RemoveToolTip定时关闭置顶提示窗口_09, 5000
}
}
}

; 让ToolTip提示在一段时间后消失
RemoveToolTip定时关闭置顶提示窗口_09:
SetTimer, RemoveToolTip定时关闭置顶提示窗口_09, Off
ToolTip
return

; ===== 此脚本到此行结束 =====

;~ 【管理员】徐晓亮(595076941)
;~ 有了此QQ群和代码测试模板和百度这3个法宝就可以玩AutoHotkey脚本源代码
;~ 【管理员】徐晓亮(595076941)
;~ 就可以轻轻松松的玩AHK源代码了
;~ 【管理员】徐晓亮(595076941)
;~ 开始接受ahk的SciTE了,先搜集大量小工具(类似AHKInfo 1.3.5)或者用Delphi或Visual Studio 自制一些有特殊要求的小工具软件并手动集成到SciTE4AutoHotkey的工具栏中(最好有2行工具栏用于存放常用自制工具,这样在写源代码时比较方便快捷),最后还是要注意资源搜集,资源备份,资源全文检索,全网源代码搜索

;~ 小部分AutoHotkey源代码片段测试模板2019年9月22日.ahk

;~ 此脚本用于测试执行一行或多行AHK脚本源代码的效果
;~ 此脚本最后修改于2019年9月22日20时03分
;~ 把此源代码复制到SciTE4AutoHotkey文本编辑器中
;~ 在SciTE4AutoHotkey文本编辑器窗口中按快捷键F5运行脚本
;~ 在SciTE4AutoHotkey文本编辑器窗口中按快捷键Ctrl+Break终止此脚本运行
;~ 按快捷键F9运行需要测试的代码
;~ 选中源代码块后按快捷键 Ctrl+Q 注释代码块
;~ 请使用 "星雨朝霞" 制作的 "AHKInfo 1.3.5.ahk" 窗口信息抓取工具来获取控件操作源代码和控件的ClassNN类别名称

; 源代码作用:并发运行AHK脚本演示,脚本测试模板 打印日期:2019年10月10日 源代码作者:徐晓亮(aahk6188) 第X页【共Y页】

;~ 并发运行的AutoHotkey脚本真机实际测试模板参考20191010.ahk的更多相关文章

  1. IOS-Appium 自动化测试——环境配置及模拟器、真机跑测试

    在MAC环境下配置IOS的appium的自动化测试环境,主要包含三个部分: 一.环境配置 1.安装homebrew(homebrew可以提供MAC OS无法提供的很多套件) ruby -e " ...

  2. 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始i ...

  3. appium通过WiFi连接真机进行测试

    http://www.th7.cn/Program/Android/201507/514602.shtml appium通过WiFi连接真机进行测试   2015-07-24 19:43:07CSDN ...

  4. ;~ 小部分AutoHotkey脚本源代码测试模板样板.ahk

    ; ;~ 小部分AutoHotkey脚本源代码测试模板样板.ahk ;~ 请把一行或几行少量代码放到此文件中实际测试一下,;~ 看看测试结果如何,等到能够实现代码功能时再复制到自己的脚本代码文件中;~ ...

  5. Monkey用真机做测试的步骤

    1 必备条件 1) 手机需要先获取root权限: 2) 手机和电脑相连(电脑可以访问手机里面的文件) 2  操作步骤 1) 使用adb devices 命令查看电脑手机是否相连: 下图表示手机已连上电 ...

  6. ReactNative用指定的真机/模拟器运行项目

    使用模拟器运行项目: 命令行中React native项目目录下键入react-native run-ios会启动iOS模拟器, 默认是使用iPhone6,如果想要试用其他版本的模拟器则需要在reac ...

  7. 【Data Cluster】真机环境下MySQL数据库集群搭建

    真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...

  8. iOS真机UI调试利器——Reveal

    做iOS的开发,UI是非常非常重要的一环.调试时我们一般用模拟器,提交前用真机做测试.用模拟器来调试UI效果虽然快捷方便,但有时仍然希望有更强大 的工具来帮助分析UI,尤其是专注在UI的效果调试时.最 ...

  9. 【转】Xcode7真机调试iOS应用程序

    原文网址:http://i.cnblogs.com/EditPosts.aspx?opt=1 近日苹果发布的新的Xcode7带来了许多特性,比如:swift语言比以前运行更快.功能更强.代码具有更高的 ...

随机推荐

  1. mycat高可用-安全管理-监控 看这一篇就够了

    ​ 在之前的操作中,我们已经实现了mysql机器的高可用,可以动态切换master,那么如果mycat崩溃了呢?我们应该如何处理呢?所以此时就需要搭建mycat的高可用集群了. ​ 在mycat的权威 ...

  2. git schnnel failed to receive handshake, SSLTLS connection failed

    git schnnel failed to receive handshake, SSLTLS connection failed 报错,查看原因为git安装时ssl选择的不是openssl.重新安装 ...

  3. 乘风破浪,下载安装体验Adobe XD流程,全新的引导和安装体验设计

    简介 Adobe XD是一款适用于网站和应用程序等的快速且功能强大的UI/UX设计解决方案.可实现设计.线框.动画制作.原型创建.协作和共享等,功能一应俱全. https://www.adobe.co ...

  4. WebGPU性能测试分析

    大家好,本文对WebGPU进行性能测试和分析,目的是为了对比WebGL和WebGPU在"渲染"和"计算"两个维度的性能差异,具体表现为CPU性能和FPS性能两个 ...

  5. string转char*/char[]

    转char* 主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy(); 1.data() data()仅返回字符串内容,而不含有结束符'\0' std: ...

  6. 11、函数(def)

    11.1.函数: 函数即变量 函数的作用域只跟函数声明时定义的作用域有关,跟函数的调用位置无任何关系 1.函数格式: def test(x): ''' 2*x+1 :param x:整形数字 :ret ...

  7. 学堂在线《Java程序设计(2021春)》系列笔记——前言

    写在前面 目录 写在前面 这个系列是什么 为什么要做这篇博客 我是谁(其实不重要) 其他 这个系列是什么 这是关于学堂在线<Java程序设计(2021春)>(清华大学-郑莉教授)的个人同步 ...

  8. SpringBoot:SpringBoot项目的配置文件放在Jar包外加载

    SpringBoot读取配置文件的优先级为: 第一.项目jar包同级下的config文件夹是优先级最高的,是在执行命令的目录下建config文件夹.(在jar包的同一目录下建config文件夹,执行命 ...

  9. centos7 之 设置环境变量(转载)

    设置centos环境变量,可以用export命令,也可以通过修改文件形式实现,本文以lavavel需要设置环境变量为例,将 /root/.config/composer/vendor/bin 路径加到 ...

  10. Shell循环语句for、while、until

    Shell循环语句for.while.until            一.条件测试            二.删除字符            三.循环语句              示例1     ...