Sikuli不牺牲鼠标和键盘
问题描述:
我对Sikuli不是很熟悉。Sikuli不牺牲鼠标和键盘
- 我可以在Python 3.4或2.7版本中使用Sikuli吗?
- 在Sikuli项目中,脚本接管了鼠标和键盘,这意味着在运行时不能在其他项目上工作。显然这是对时间的极大浪费。有没有办法在同一台计算机上同时运行Sikuli并同时处理其他事情?
我对虚拟机并不熟悉,但我听说它与Sikuli有一些问题。有没有办法克服这个问题?
奖金的问题,如何使一个Sikuli脚本的exe文件,用户可以点击并从他的桌面运行,而无需任何解释器安装?
答
- Sikuli不使用Python,但Jython的。如果你需要更多的信息,你应该参考Jython official documentation。
- Sikuli正在使用Java机器人库来控制鼠标的键盘和物理控制两者。没有办法解决这个问题。
- Sikuli与屏幕的视觉内容交互,并通过截图和检测预先保存的模式进行操作。因此无法在后台运行它。
- 虚拟机的主要问题与前一段中的解释相同。除非你的虚拟机具有一个实际的屏幕(它基本上只是另一个桌面:))
- 由于Sikuli使用的是Jython,你可以尝试把你的脚本打包成jar。有关于该主题here的相关问题。
答
-
您可以在做其他工作的同时使用sikuli。这不是直接通过sikuli完成的。我有一个脚本,但我没有直接访问,所以我只是给语义。它使用VNC会话完成。
在bash脚本,启动VNC会话
点是VNC会话的显示器sikuli。
Sikuli然后工作是在这个VNC会话,而你的工作在机器上(或通过不同的VNC会话)
这一切都必须由bash脚本来管理,我不知道,如果一个批次/ powershell脚本(甚至python/perl脚本)将能够管理它,但是它回答#4,它使终端用户体验点击运行(仍然需要翻译或打包成一个罐子)
这适用于unix机器,我不知道windows,因为我只用过windows作为VNC客户端
如果我稍后访问脚本,我会在这里发布相关部分。
谢谢。所以要运行sikuli(不是.jar文件),我需要安装java还是jython就够了?如果用户移动鼠标,sikuli会崩溃吗?是否有任何其他方式与gui交互,而不会接管鼠标? – Nadav
@Nadav一般来说,你不需要安装它们,因为Sikuli包含了所有需要的预包装。如果您在Sikuli操作时尝试移动鼠标或使用键盘,它不会崩溃。它看起来就像两个人将鼠标拖动到不同的方向,并且有人正在与您一起使用键盘。如果您有兴趣,请亲自尝试一下以获得感觉。 –
@Nadav如果不控制输入流,Sikuli就无法工作。即使可能,Sikuli仍然需要访问屏幕上的实际可视内容,以便您仍然无法同时使用您的PC。如果您对“其他方式”的问题暗示使用其他自动化工具,那么答案是肯定的。有些工具无法控制输入。 –