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

[Script]
//初始化的工作
Dim hWnd
Dim ax,ay,bx,by
VBS set TiShiObj = createobject("WScript.Shell")
Plugin File.DeleteFile("../qmacro.ini.bak")
Plugin File.MoveFile("../qmacro.ini","../qmacro.ini.bak")
//鼠标移到屏幕正中并保存位置，这样可以显示较长时间的鼠标移动轨迹
VBS YiDongSuDu=3
Gosub YiDaoZhongJian
SaveMousePos 
//移到(0,0)点，免得鼠标挡住说明窗口
MoveTo 0 0
//按顺序执行各个功能模块
Gosub ShuoMing
Gosub XinJian
Gosub JieShao1
Gosub JieShao2
Gosub JieShao3
Gosub ZhiZuo
Gosub BaoCunTuiChu
//收尾的工作
Plugin File.DeleteFile("../qmacro.ini")
Plugin File.MoveFile("../qmacro.ini.bak","../qmacro.ini")
EndScript 
//功能模块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 
    VBS bxOpp = 141:byOpp = 47
    Gosub GetABPoint
    //VBSCall 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 
    VBS bxOpp=131:byOpp=120
    Gosub GetABPoint
    Gosub ManManYiDong
    LeftClick 1
    Delay 3000
    LeftClick 1
Return JieShao1
//功能模块3：脚本编辑器界面，介绍鼠标命令的使用
Sub JieShao2
    TiShiXinXI = "请看鼠标命令面板"&vbCrLf&"可以模拟鼠标的操作"
    Gosub TiShi
    //演示鼠标命令分类
    RestoreMousePos 
    VBS bxOpp=131:byOpp=142
    Gosub GetABPoint
    Gosub ManManYiDong
    LeftClick 1
    Delay 3000
    LeftClick 1
Return JieShao2
//功能模块4：脚本编辑器界面，介绍其他命令的使用
Sub JieShao3
    TiShiXinXI = "请看其他命令面板"&vbCrLf&"能实现一些最常用的功能"
    Gosub TiShi
    RestoreMousePos 
    //演示其他命令分类
    VBS bxOpp=131:byOpp=172
    Gosub GetABPoint
    Gosub ManManYiDong
    LeftClick 1
    Delay 3000
    LeftClick 1
Return JieShao3
//功能模块5：插入一个键盘命令，完成脚本制作
Sub ZhiZuo
    TiShiXinXI = "我们现在插入5个按键命令"&vbCrLf&"实现模拟按5下A键的功能"
    Gosub TiShi
    RestoreMousePos 
    VBS bxOpp=131:byOpp=120
    Gosub GetABPoint
    Gosub ManManYiDong
    LeftClick 1
    VBS bxOpp=54:byOpp=158
    Gosub GetABPoint
    YiDongSuDu = 10
    Gosub ManManYiDong
    LeftClick 1
    KeyPress 65 1
    VBS bxOpp=233:byOpp=167
    Gosub GetABPoint
    YiDongSuDu = 10
    Gosub ManManYiDong
    LeftClick 5
    TiShiXinXI = "现在成功的插入了5条键盘命令"&vbCrLf&"接下来我们保存脚本退出"
    Gosub TiShi
Return ZhiZuo
//功能模块6：保存退出脚本编辑器
Sub BaoCunTuiChu
    VBS bxOpp=91:byOpp=45
    Gosub GetABPoint
    YiDongSuDu = 10
    Gosub ManManYiDong
    LeftClick 1
    Delay 1000
    TiShiXinXI = "恭喜你！第一个脚本诞生了 ：）"&vbCrLf&"现在脚本列表里会多出一个『我的脚本』"
    Gosub TiShi
    TiShiXinXI = "当您按下脚本的启动热键 F10 "&vbCrLf&"脚本即可帮你模拟按键输入5个 A "
    Gosub TiShi
    TiShiXinXI = "本教程演示完毕！"&vbCrLf&"快点试试您的第一个脚本吧！"
    Gosub TiShi
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
    VBSCall TiShiObj.Popup(TiShiXinXi,3,"3秒后窗口自动关闭",0)
Return TiShi
//常用：获取A点和B点的坐标，A点是当前坐标点，B点是目的坐标点
Sub GetABPoint
    //获取A点坐标信息
    VBSCall 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 Call GetScreenResolution(intX,intY)
    MoveTo intX/2 intY/2
Return YiDaoZhongJian
