2016-07-05 109 views
-1

我对Sikuli不是很熟悉。Sikuli不牺牲鼠标和键盘

  1. 我可以在Python 3.4或2.7版本中使用Sikuli吗?
  2. 在Sikuli项目中,脚本接管了鼠标和键盘,这意味着在运行时不能在其他项目上工作。显然这是对时间的极大浪费。有没有办法在同一台计算机上同时运行Sikuli并同时处理其他事情?
  3. 我对虚拟机并不熟悉,但我听说它与Sikuli有一些问题。有没有办法克服这个问题?

  4. 奖金的问题,如何使一个Sikuli脚本的exe文件,用户可以点击并从他的桌面运行,而无需任何解释器安装?

回答

1
  1. Sikuli不使用Python,但Jython的。如果你需要更多的信息,你应该参考Jython official documentation
  2. Sikuli正在使用Java机器人库来控制鼠标的键盘和物理控制两者。没有办法解决这个问题。
  3. Sikuli与屏幕的视觉内容交互,并通过截图和检测预先保存的模式进行操作。因此无法在后台运行它。
  4. 虚拟机的主要问题与前一段中的解释相同。除非你的虚拟机具有一个实际的屏幕(它基本上只是另一个桌面:))
  5. 由于Sikuli使用的是Jython,你可以尝试把你的脚本打包成jar。有关于该主题here的相关问题。
+0

谢谢。所以要运行sikuli(不是.jar文件),我需要安装java还是jython就够了?如果用户移动鼠标,sikuli会崩溃吗?是否有任何其他方式与gui交互,而不会接管鼠标? – Nadav

+0

@Nadav一般来说,你不需要安装它们,因为Sikuli包含了所有需要的预包装。如果您在Sikuli操作时尝试移动鼠标或使用键盘,它不会崩溃。它看起来就像两个人将鼠标拖动到不同的方向,并且有人正在与您一起使用键盘。如果您有兴趣,请亲自尝试一下以获得感觉。 –

+0

@Nadav如果不控制输入流,Sikuli就无法工作。即使可能,Sikuli仍然需要访问屏幕上的实际可视内容,以便您仍然无法同时使用您的PC。如果您对“其他方式”的问题暗示使用其他自动化工具,那么答案是肯定的。有些工具无法控制输入。 –

0
  1. 您可以在做其他工作的同时使用sikuli。这不是直接通过sikuli完成的。我有一个脚本,但我没有直接访问,所以我只是给语义。它使用VNC会话完成。

    在bash脚本,启动VNC会话

    点是VNC会话的显示器sikuli。

    Sikuli然后工作是在这个VNC会话,而你的工作在机器上(或通过不同的VNC会话)

    这一切都必须由bash脚本来管理,我不知道,如果一个批次/ powershell脚本(甚至python/perl脚本)将能够管理它,但是它回答#4,它使终端用户体验点击运行(仍然需要翻译或打包成一个罐子)

    这适用于unix机器,我不知道windows,因为我只用过windows作为VNC客户端

如果我稍后访问脚本,我会在这里发布相关部分。