Sikuli(r930)からPython(2.7)スクリプトを呼び出して、スクリプトの変数を使用しようとしています。以下はPythonコードです。
import sys
import re
import os
import time
from pywinauto import application
from SendKeys import SendKeys
from cStringIO import StringIO
app=application.Application()
app.connect_(path=r'C:\Program Files\myApp\myApp.exe')
backup = sys.stdout
sys.stdout = StringIO()
app.dlg.print_control_identifiers()
out = sys.stdout.getvalue()
sys.stdout.close() # close the stream
sys.stdout = backup # restore original stdout
regex = re.compile(r'(\d{8}\s*\-\s*\d{8})')
found = re.search(regex, out)
print found.group(0) #pass this variable to Sikuli
stdout
これがPywinautoの print_control_identifiers
メソッドが返すもの(文字列ではない)であるため、キャプチャしています。また、Sikuliでは取得できないGUIアプリのハッシュシリアル番号が必要なため、Pywinautoを使用する必要があります。ただし、execfile()
Sikuliから電話をかけようとすると、次のエラーが発生します。
ImportError: no module named Pywinauto.
ドキュメントを読みましたが、Sikuli(Jython)にPythonモジュールとスクリプトを含めることができることを知っています。さらに、私が呼び出している外部.pyファイルは、独立して実行すると正常に実行されます。ステップが足りない場合、誰かに教えてもらえますか?
上記の.pyファイルをSikuliから呼び出すために使用しているコード:
aScript = 'c:\\getHash_serial.py'
execfile(aScript)