录制模块事件

一、模块事件

“模块事件”是模拟区块中的一组鼠标键盘指令。每个事件模拟一个鼠标或键盘指令。
每次按下“录制热键”(默认为Ctrl + Alt + J)都会创建一个新的模拟区块,模拟精灵会纪录所有的鼠标键盘操作到“模拟区块->模块事件”中。

  1. 开始录制:按下“录制热键”(默认为Ctrl + Alt + J)

    如果正在录制会自动完成原来的“模拟区块”并创建新的“模拟区块”。

  2. 暂停录制:按下“暂停热键”(默认为Ctrl + Alt + N)

  3. 完成录制:按下“停止热键”(默认为Ctrl + Alt + L)
如果使用默认录制模式,按Ctrl + Esc 可以解除录制时出现的锁屏现象。 如果经常出现这样的现象或录制不正常,可以更换录制模式为“XP录制模式”。

二、编辑模块事件

首先在“模拟区块->模块事件”中选中一个鼠标或键盘指令。

点击“事件来源”,会显示事件源列表
注意在显示下拉列表以后,滚动鼠标滚轮(或按翻页键pagedown pageup)可以比较方便的滚动下拉列表

点击"更新"按钮 - 修改指定的事件
点击"撤消"按钮 - 取消修改
点击"复制"按钮 - 创建一个新的事件
点击"删除"按钮 - 删除这个事件

、录制鼠标双击

如果在录制的时候、鼠标双击的较慢,这样可能会被认为是单击。

  1. 录制双击的要点:

    1. 不要在开录创建锚点的第一个事件录制双击,也不要把鼠标双击作为“模拟区块”的最后一个事件。
      模拟开始和结束的事件都要做特殊处理。
    2. 在录制的时候,应当先单击目标,然后再双击。

  2. 编辑双击的要点:

    1. 删除鼠标双击事件中间的“鼠移动”事件,建议您修改“鼠标双击”的延时,
      双击一共有四个鼠标事件“左键按,左键放,左键再按、左键再放”。

      分别修改四个事件的延时小于16毫秒、大于0毫秒。这样两个单击动作的间隔变小,系统即作为双击处理。
      您也可以把四个事件的延时都设为零。

    2. 删除鼠标双击事件中间的“鼠移动”事件

  3. 回放双击的要点:

    如果“软件模拟”回放不了双击,可以尝试更换其他回放模式。

  4. 使用LAScript脚本模拟双击,如下:
    mouse.clickDB(0,0,false)

三、录制鼠标轨迹数量

模拟精灵默认在录制时忽略大部的鼠标移动轨迹。因为这样会显著的减小录制后的文件体积。
但是有些程序里可能是需要更多的鼠标轨迹才能完成一些功能的,例如在个别游戏中,如果不录制一定数量的移动轨迹,在回放时动作会变的迟钝或不正常。

如果需要录制更多的鼠标移动轨迹,请在录制以前点击“设置”按钮,然后选择“基本设置”选项。
向左拖动“录制鼠标轨迹数量”选项中的滑块,然后点击“更新设置”按钮。

如果不是特别需要,应恢复默认值,记录太多的鼠标移动会增加fap文件的体积。

四、鼠标拖动

增加更多的鼠标移动轨迹可以模拟鼠标拖动的效果,如果在回放时无法拖动,可以切换到其他“回放模式”即可。


附、用LAScript脚本模拟鼠标拖动的效果

mouse.waitLB(); --等待鼠标单击桌面图标
delay(1000) mouse.down(0,0,false);--按下鼠标

for i=1,10,1    do   --循环10次,计数器i从1递增到10,每次加1
   mouse.move(10,10,false);--向右向下相对移动鼠标十个像素
   delay(100);--延时100毫秒
end;--结束循环

mouse.up(0,0,false);--弹起鼠标

--执行上面的脚本,然后点击桌面上的任意一个图标,你会看到图标被拖动

五、在模块事件中录制热键

如果您需要录制热键指令,例如CTRL ALT SHIFT等按键事件。注意不要把这些按键放在模块事件的开始或结束。
因为“模拟区块”会自动清除模块事件开始或结束的热键事件(作为录制热键、停止热键而自动清除)。

六、更改录制模式

如果在录制中出现问题,通常可以通过更改“录制模式”解决。



抢占录制:指首先启动模拟精灵,并且按录制热键,然后打开游戏程序,需要创建模拟区块时再次按下录制热键(不要按停止热键)。
直到所有录制完成,再按停止热键。

七、更改回放模式

模拟精灵支持四种不同的回放模式,一键切换,等于拥有四个完全不同的软件,可解决“回放运行”遇到的大多数疑难问题。

八、模块事件-运行

当“模块事件”运行以前,会首先检测“模块事件->运行”指令。
如果“模块事件->运行”中是LAScript脚本,则执行脚本并从返回值中取得指令。
如果返回_CMD_OUT指令则离开当前模块不执行“模块事件”。否则向下执行所有“模块事件”。

“模块锚点”自动定位失败总是会触发“锚点->失败处理”指令,
“模块锚点”自动定位成功总是会触发“模块事件->运行”指令。