2016-07-05 141 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客戶端

如果我稍後訪問腳本,我會在這裏發佈相關部分。