锚点-目标程序定位


模块锚点”可以作为“定位点”,起一个自动定位的作用,保证录制的鼠标键盘指令不会发错目标。

如果在您回放模拟程序时,“自动定位”失败,就会自动触发相应节点的“失败处理指令

您可以预先设定以下指令。
  1. _CMD_LOOP 循环指令 : 这个指令指示模拟精灵不断重试,直到自动定位成功。
  2. _CMD_NEXT 继续指令 : 这个指令指示模拟精灵忽略当前节点的错误,继续执行后面的判断或指令。
  3. _CMD_OUT 跳出指令 : 这个指令指示模拟精灵在定位失败时离开当前模拟区块,继续执行后面的其他区块。
  4. 执行脚本 执行您添加的LAScript脚本,并在脚本中通过return语句返回以上三个指令之一。

    例如下面的脚本在锚点定位失败以后跳转到指定的区块,并通过_CMD_OUT指令离开当前区块:
    失败="ape:setNextPosition('失败后我要转向的区块名字');return _CMD_OUT;"




“模拟区块-->锚点”下面有很多的子节点,分别执行不同的定位功能。

首先,我们看一下锚点的根节点,根节点记录了目标程序的名字,在回放时,模拟精灵如果发现目标程序没有打开,会自动查找目标程序所在的位置并自动打开指定的程序。

“目标应用程序”可以输入文件名,也可以仅输入文件名的一部份。也可以为空(指示模拟精灵不进行目标程序定位)
如果您不希望模拟区块仅对某个特定的程序有效,或者不希望模拟精灵自动定位或自动打开目标程序,可以清空“目标应用程序”参数。


如果同一个文件名的应用程序创建了多个进程。那么模拟区块只会随机定位一个进程。
如果您希望更准确的定位到其中的一个进程,可以在模拟区块前添加脚本区块并用下面的LAScript脚本获取所有进程的列表,并进行分析。


--系统进程列表
tpids = win.tPID();
 
--遍历tpids列表
for pid,pinfo in pairs(tpids) do
  -- pid为进程id pinfo.file 为应用程序文件名
end;


在找到您需要的进程以后,可以用 下面的代码找到符合条件的窗体,并将其设定为前台窗体。
这样后面的模拟区块就可以成功定位到您指定的窗体了。

hwnd = win.fromPID(pid,"窗体类名","标题包含")
if(hwnd ~= _NULL)then
    win.setForeground(hwnd);
else
   error("没有找到符合条件的窗体");
end;