連携するツールとしてここで取り上げるのは、実現できないことではないけれど、Sikuliの機能だけで実現するとなると「面倒くさいなー」と思ったとき、あるいは、Sikuliでは「無理だ」と思ったとき、Sikuliから呼び出して使ってほしいツールです。Sikuliを始めたばかりの人は、[9]操作フローの見える化の方を先に読んでください。
RPAロゴ
『こんなことは出来るの?』とよく聞かれる以下に示すことは、Sikuliに含まれている機能(jythonおよびライブラリとしてバンドルされている機能を含む)で実現できますので、ここでは説明しません。

■Sikuliに含まれる機能で実現できること
・CSVファイルを読めるの? ⇒ここに例があるよ
・EXCELファイルを読めるの? ⇒ここに例があるよ
・データベースへアクセスできるの? ⇒ここに例があるよ

■Sikuliの機能だけで実現するとなると”面倒くさい”こと ・”無理”なこと
”面倒くさい”のは、リストボックスやコンボボックスの操作、”無理”なのは表示文字を読み取ることです。まず[メモ帳]のリストボックスとコンボボックスの例を見てください。
(1)リストボックス
他ツール-1
[メモ帳]の場合は、テキストボックスに直接文字を入力できる仕様なので、テキストボックスにpaste()を使って入力すれば、Sikuliでも簡単にスクリプトを作成できますが、テキストボックスへの文字入力を許可していないアプリケーションの場合はどうでしょうか。
人がリストボックスから選択するときは、「目的のアイテムが見つかるまでリストボックスをスクロールして、目的のアイテムをクリック」ということをやっています。これと同じことをSikuliのスクリプトにするとしたら、こんなふうなります。
①一覧に表示しているアイテムの画像を準備します。いろいろなパターンの操作を自動化しようとしたら、その分だけ画像を用意しなければなりません。
 他ツール-14他ツール-15
②一覧に目的のアイテム画像があるかチェックするにはexists()を使えばなんとかなります。
 他ツール-11他ツール-12
用意したアイテムの画像をリストimage = ["font01.png", "font02.png", ・・・]に定義しておいて、exists(image[i])のようにすれば、exists()を使うスクリプトは1行だけで実現できます。
③一覧に目的のアイテム画像が無いときのスクロールは、click()を使えばなんとかなります。
 他ツール-13
④まだスクロールできるのか、最後までスクロールしたのかの判断は、これといった確実な方法は無いので、試行錯誤でそのアプリケーションに合った方法を探し出す必要があります。

こうしてみると、①の画像の準備が一番”面倒くさい”作業で、④の方法を考え出すことが手間のかかる作業になるかと思います。

(2)コンボボックス
他ツール-2
コンボボックスはテキストボックスが付いていないので、paste()で文字を入力することができません。Sikuliのスクリプトは、テキストボックスへの文字入力を許可していないリストボックスと同じになります。
人に優しいユーザーインターフェイスが、Sikuliには全く優しくありません。

(3)画面に表示している文字を読み取ること
SikuliにはOCR機能がありますが、Sikuli1.1.1ではまだ試験的機能でしかありません。『英数字のあるフォントに限定すれば使える。』という程度のものです。日本語については全く認識できません。
業務の中で、「ある画面の表示内容を読み取って、別の画面に入力したり、記録として文書ファイルに転記する。」という作業は、よく見受けられることです。画面の表示内容が読み取れないのでは、RPAにならないかもしれません。
Sikuliは画像は見えていても、文字として認識する機能が弱い訳です。

■Sikuliの”面倒くさい” ・”無理”を簡単に実現してしまうツール
操作自動化の対象とする画面アプリケーションが、.NETアプリ画面なら「UIAutomation」、ブラウザで表示する画面なら「Selenium」と連携することをお奨めします。Sikuliは人が操作するのと同じように、アプリケーションが提供するユーザーインターフェイスを使って、アプリケーションの外側から操作しますが、「UIAutomation」は.NETアプリの、「Selenium」はブラウザの、アプリケーションの内側から表示項目要素を直接操作します。表示項目要素を読むことも書くことも直接できます。
「UIAutomation」や「Selenium」ではユーザーインターフェイスを介さないので、リストボックスやコンボボックスの操作をSikuliで実現するときの例で挙げた「スクロール」を使わずに、スクリプトを組むことができます。また、OCR機能を使わなくても、表示内容を取得することができます。

Sikuliで画面操作のスクリプトを作成しているときに、ユーザーインターフェイスを介するが故の”面倒くさい”に直面したとき、”無理”と思ったときは、他のツールとの連携も検討してみましょう。案外、楽に解決できる問題かもしれません。

「UIAutomation」や「Selenium」との連携に関するTipsが、このブログにありますので、そのページへのリンクを載せておきます。
(1)UIAutomation
UIAutomationPowerShellExtensionsの入手方法
PowerShellプロセスを別スレッドで実行してクリップボード経由で通信する

(2)Selenium
IDEからSelenium WebDriverを使う(共通)(←必要ファイルのダウンロード情報を含む)
IDEからSelenium WebDriverを使う(トラブル対策)(←Seleniumを使うときのおまじない)
IDEからSelenium WebDriverを使う(API逆引き)(←よく使うAPIとimportするクラスの紹介)