;~ 并发运行的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. Android开发问题之Installation failed due to invalid URI!

    真机调试遇到以下问题: [2017-07-20 13:43:53 - VCL02PANEL] Installation failed due to invalid URI![2017-07-20 13 ...

  2. 乘风破浪,遇见华为鸿蒙智能终端系统(HarmonyOS 2),打造面向全场景的分布式操作系统

    什么是鸿蒙智能终端系统(HarmonyOS 2) HarmonyOS 是新一代的智能终端操作系统,为不同设备的智能化.互联与协同提供了统一的语言.带来简洁,流畅,连续,安全可靠的全场景交互体验. ht ...

  3. Custom Controller CollectionQT样式自定义 001 :SliderLineEdit 滑动输入框

    主要是继承QLineEdit类重新实现其鼠标事件,建议禁用输入框默认的菜单项. SliderLineEdit 滑动输入框 参照图形平台 Adobe系列中属性输入框 做的样式,支持点击编辑和长按鼠标拖动 ...

  4. 14 Nginx访问日志自动按天切割

    #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin LOG_DIR=/usr/loc ...

  5. POJ 2663 Tri Tiling dp 画图找规律

    状态:d[i]代表n=i时的方案数. 状态转移方程:d[i]=d[i-2]+2*(d[i-2]+d[i-4]+-+d[0]) i只会为偶数,奇数情况不存在,d[0]=1 找状态转移方程的时候画图更好理 ...

  6. CentOS7-磁盘扩容(LVM-非空目录拓展卷空间大小)

    查看存储情况 $ df -kh 查看磁盘情况 $ fdisk -l 创建分区(注:可操作存储上限2TB) $ fdisk /dev/sdb 根据提示,依次输入"n","p ...

  7. 什么是BSE

    BSE (bridge system engineer) 是外包开发人员和客户之前的桥梁. 主要是将客户的需求准确的理解并传达给外包的开发人员,一般情况下也兼开发的 leader 工作. 参考: ht ...

  8. CA和SSL证书介绍

    一.什么是CA? CA是证书的签发机构,它是公钥基础设施(Public Key Infrastructure,PKI)的核心.CA是负责签发证书.认证证书.管理已颁发证书的机关.CA 拥有一个证书(内 ...

  9. Shell编程之条件语句:if、case语句

    Shell编程之条件语句:if.case语句               一.条件测试                1)test命令测试                2)整数值比较         ...

  10. C语言:常用数学函数

    #include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> # ...