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

[Script]
//初始化的工作
Dim hWnd
Dim ax,ay,bx,by
VBS set TiShiObj = createobject("WScript.Shell")
//鼠标移到屏幕正中并保存位置，这样可以显示较长时间的鼠标移动轨迹
VBS YiDongSuDu=3
Gosub YiDaoZhongJian
SaveMousePos 
MoveTo 0 0
//先说明一下脚本的功能
Gosub ShuoMing
//按顺序执行各个功能模块
Gosub XiaoJL
Gosub ZhiZuoJL
EndScript 
//功能模块0：介绍这个脚本的基本情况
Sub ShuoMing
    TiShiXinXi = "【按键精灵】动起来教程 3.0讲，制作：vrBrothers.Leo"&vbCrLf&"本教程完全自动，请勿在脚本运行时接触键盘和鼠标！"
    Gosub TiShi
    TiShiXinXi = "本讲介绍如何制作小精灵；所需时间：1分30秒"
    Gosub TiShi
    TiShiXinXi = "小精灵功能是按键精灵又一个特色，可以把脚本打包为【独立执行的EXE程序】"
    Gosub TiShi
    TiShiXinXi = "下面我们介绍小精灵的具体制作方法"
    Gosub TiShi
Return ShuoMing
//功能模块1：主界面移动鼠标到录制按钮，按下鼠标打开录制窗口
Sub XiaoJL
    //选脚本
    TiShiXinXI = "首先必须选中一个脚本，才能打包小精灵"
    Gosub TiShi
    RestoreMousePos 
    //第一个脚本的位置
    VBS bxOpp = 321:byOpp = 140
    Gosub GetABPoint
    Gosub ManManYiDong
    LeftClick 1
    Delay 2000
    TiShiXinXI = "选中脚本后点击【小精灵】按钮进入小精灵制作界面"
    Gosub TiShi
    //小精灵按钮的相对地址
    VBS bxOpp = 498:byOpp = 47
    Gosub GetABPoint
    Gosub ManManYiDong
    Delay 2000
    LeftClick 1
    Delay 3000
Return XiaoJL
//功能模块2：制作小精灵
Sub ZhiZuoJL
    TiShiXinXI = "现在您看到的就是制作小精灵的界面"
    Gosub TiShi
    TiShiXinXI = "我们先给小精灵加上说明，方便其他人使用"
    Gosub TiShi
    //按6下TAB键切换到注释控件
    KeyPress 9 6
    KeyPress 13 2
    SayString 这是我的小精灵注释
    Delay 2000
    TiShiXinXI = "注释加入之后点击【开始制作】按钮之后就会成功制作小精灵"
    Gosub TiShi
    //制作小精灵按钮的相对地址
    VBS bxOpp = 452:byOpp = 360
    Gosub GetABPoint
    Gosub ManManYiDong
    Delay 1000
    LeftClick 1
    TiShiXinXI = "教程结束！您的小精灵已经制作成功！"
    Gosub TiShi
Return ZhiZuoJL
//常用：把鼠标从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)
    //    VBSCall MessageBox(winRect)
    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
//常用：屏幕上画圆
Sub 画圆
    r=300:x0=512:y0=384:x=0:y=0:n=0
    While n<3.1415926*2
        x=x0+r*cos(n)
        y=y0-r*sin(n)
        MoveTo x y
        Delay 10
        n=n+0.03
    EndWhile 
Return 画圆
