[General]
Description=动作教程1：新建一个脚本
BeginHotkey=49
BeginHotkeyMod=2
PauseHotkey=0
PauseHotkeyMod=0
StopHotkey=123
StopHotkeyMod=0
RunOnce=1
EnableWindow=
Enable=0
AutoRun=0
[Repeat]
Type=0
Number=1
[Relative]
SetupOCXFile=
[Comment]
Content=.
【功能说明】.
用动作脚本的方式介绍如何使用按键精灵新建一个脚本.
.
【使用说明】.
按下热键1，即可启动脚本。.
.
【作者介绍】.
vrBrothers.Leo.
.
【制作日期】.
2006.9.
.

[Script]
//初始化的工作
Dim hWnd
Dim ax,ay,bx,by
set TiShiObj = createobject("WScript.Shell")
Plugin File.DeleteFile("../qmacro.ini.bak")
Plugin File.MoveFile("../qmacro.ini","../qmacro.ini.bak")
//鼠标移到屏幕正中并保存位置，这样可以显示较长时间的鼠标移动轨迹
YiDongSuDu=3
Gosub YiDaoZhongJian
SaveMousePos 
//移到(0,0)点，免得鼠标挡住说明窗口
MoveTo 0,0
//按顺序执行各个功能模块
Gosub ShuoMing
Gosub XinJian
Gosub JieShao1
//Gosub JieShao2
Gosub JieShao3
Gosub ZhiZuo
Gosub BaoCunTuiChu
EndScript 
Sub OnScriptExit
    //收尾的工作
    Plugin File.DeleteFile("../qmacro.ini")
    Plugin File.MoveFile("../qmacro.ini.bak","../qmacro.ini")
Return 
//功能模块0：介绍这个脚本的基本情况
Sub ShuoMing
    TiShiXinXi = "【按键精灵】动起来教程 1.0版，制作：vrBrothers.Leo"&vbCrLf&"本教程完全自动，请勿在脚本运行时接触键盘和鼠标！"
    Gosub TiShi
    TiShiXinXi = "本讲介绍如何建立你的脚本；所需时间：1分30秒"
    Gosub TiShi
    TiShiXinXi = "废话不多说，我先点击新建按钮新建一个脚本"
    Gosub TiShi
    TiShiXinXi = "偷偷告诉你个小技巧：鼠标移动到按钮上停留2秒，即可看到详细说明"
    Gosub TiShi
Return ShuoMing
//功能模块1：主界面移动鼠标到新建按钮，并按下鼠标打开脚本编辑器
Sub XinJian
    //新建按钮的相对地址
    RestoreMousePos 
    bxOpp = 141:byOpp = 47
    Gosub GetABPoint
    //Call MessageBox(ax&"|"&ay&"|"&bx&"|"&by)
    Gosub ManManYiDong
    LeftClick 1
    Delay 2000
    //打开了脚本编辑器，介绍脚本编辑器的功能
    TiShiXinXI = "现在您看到的是脚本编辑界面"&vbCrLf&"这里是创造脚本的舞台"
    Gosub TiShi
    TiShiXinXI = "脚本编辑器分为4个主要区域"
    Gosub TiShi
    TiShiXinXI = "上方是工具栏，都是一些制作脚本的功能按钮"
    Gosub TiShi
    TiShiXinXI = "左边是命令面板，通过界面操作即可制作脚本"
    Gosub TiShi
    TiShiXinXI = "中间是脚本的代码区域，普通视图全中文，谁叫俺是中国人的作品呢 ^_^ "
    Gosub TiShi
    TiShiXinXI = "右边是脚本的属性设置区域，可以设定脚本热键和运行方式"
    Gosub TiShi
Return XinJian
//功能模块2：脚本编辑器界面，介绍键盘命令的使用
Sub JieShao1
    TiShiXinXI = "请看键盘命令面板"&vbCrLf&"可以模拟键盘的操作"
    Gosub TiShi
    //演示键盘命令分类，说明：by要减去20，因为目前抓取区域不会计算标题栏的20个象素
    RestoreMousePos 
    bxOpp=131:byOpp=135
    Gosub GetABPoint
    Gosub ManManYiDong
    LeftClick 1
    Delay 3000
    LeftClick 1
Return JieShao1
//功能模块3：脚本编辑器界面，介绍鼠标命令的使用
Sub JieShao2
    TiShiXinXI = "请看鼠标命令面板"&vbCrLf&"可以模拟鼠标的操作"
    Gosub TiShi
    //演示鼠标命令分类
    RestoreMousePos 
    bxOpp=131:byOpp=162
    Gosub GetABPoint
    Gosub ManManYiDong
    LeftClick 1
    Delay 3000
    LeftClick 1
Return JieShao2
//功能模块4：脚本编辑器界面，介绍控制命令的使用
Sub JieShao3
    TiShiXinXI = "其他命令面板留给大家自己去研究吧"&vbCrLf&"按键精灵会不断增加新的功能面板"
    Gosub TiShi
    RestoreMousePos 
Return JieShao3
//功能模块5：插入一个键盘命令，完成脚本制作
Sub ZhiZuo
    TiShiXinXI = "我们现在插入5个按键命令"&vbCrLf&"实现模拟按5下A键的功能"
    Gosub TiShi
    RestoreMousePos 
    bxOpp=131:byOpp=135
    Gosub GetABPoint
    Gosub ManManYiDong
    LeftClick 1
    bxOpp=54:byOpp=179
    Gosub GetABPoint
    YiDongSuDu = 10
    Gosub ManManYiDong
    LeftClick 1
    KeyPress 65 1
    bxOpp=233:byOpp=185
    Gosub GetABPoint
    YiDongSuDu = 10
    Gosub ManManYiDong
    LeftClick 5
    TiShiXinXI = "现在成功的插入了5条键盘命令"&vbCrLf&"接下来我们保存脚本退出"
    Gosub TiShi
Return ZhiZuo
//功能模块6：保存退出脚本编辑器
Sub BaoCunTuiChu
    bxOpp=91:byOpp=45
    Gosub GetABPoint
    YiDongSuDu = 10
    Gosub ManManYiDong
    TiShiXinXI = "恭喜你！第一个脚本诞生了 ：）"&vbCrLf&"保存成功后脚本列表里会多出一个『我的脚本』"
    Gosub TiShi
    TiShiXinXI = "当您按下脚本的启动热键 F10 "&vbCrLf&"脚本即可帮你模拟按键输入5个 A "
    Gosub TiShi
    TiShiXinXI = "本教程演示完毕！准备帮您自动保存这个脚本。"&vbCrLf&"快点试试您的第一个脚本吧！"
    Gosub TiShi
    LeftClick 1
    Delay 1000
    KeyPress 13,1
    Delay 1000
Return BaoCunTuiChu
//常用：把鼠标从a点慢慢移动到b点
Sub ManManYiDong
    PianYiX = ax-bx
    PianYiY = ay-by
    Rem YiDong
    If PianYiX<>0 or PianYiY<>0
        YiDongX =0
        YiDongY =0
        If PianYiX<>0
            YiDongX = -abs(PianYiX)/PianYiX
        EndIf 
        If PianYiY<>0
            YiDongY = -abs(PianYiY)/PianYiY
        EndIf 
        MoveR YiDongX,YiDongY
        PianYiX = PianYiX + YiDongX
        PianYiY = PianYiY + YiDongY
        Delay YiDongSuDu
        Goto YiDong
    EndIf 
Return ManManYidong
//常用：提示信息，过3秒自动关闭窗口的方式
Sub TiShi
    //注意：这里的CALL是VBS里的CALL语句。当过程调用带有括号时必须加CALL关键字。
    Call TiShiObj.Popup(TiShiXinXi,3,"3秒后窗口自动关闭",0)
Return TiShi
//常用：获取A点和B点的坐标，A点是当前坐标点，B点是目的坐标点
Sub GetABPoint
    //获取A点坐标信息
    Call GetCursorPos(ax,ay)
    //获取B点坐标信息，B点坐标 ＝ 窗口坐标 ＋ 相对坐标
    Plugin hWnd=Window.Foreground()
    Plugin winRect=Window.GetWindowRect(hWnd)
    winPoint = Split(winRect, "|", -1, 1)
    bx = CInt(winPoint(0)) + bxOpp
    by = CInt(winPoint(1)) + byOpp
Return GetABPoint
//常用：把鼠标移动到屏幕正中
Sub YiDaoZhongJian
    VBSCall GetScreenResolution(intX,intY)
    MoveTo intX/2,intY/2
Return YiDaoZhongJian
