最終更新日:2022年10月10日
こさい
こんにちは。完全自動化研究所の小佐井です。
SikuliXで「メモ帳を直接起動して文字を書きこむロボ」を作ってみましょう!
オープンソースの無料RPA「SikuliX」で「メモ帳を直接起動して、文字を書きこむロボ」を作ってみましょう!
外部アプリケーションをSikuliXから起動する方法や文字の入力方法など、実践的なロボを作るテクニックが入っていますよ。
このページのロボを作れると、さらに業務に役立つロボが作れるようになってきますよ!
早速、見ていきましょう。
SikuliXでメモ帳を操作するロボを作ってみよう
動作確認環境
- SikuliX1.1.1
- OS:Windows10
アプリケーションを直接起動する
アプリケーションを直接SikuliXから起動するときは、subprocess.Popen関数を使います。
ちなみに、このページではメモ帳を起動するためにsubprocessモジュールのPopen関数を使っていますが、他の方法もあります。
さて、subprocessモジュールをインポートして、以下のプログラムを記述してください(リスト1)。
# -*- coding: utf-8
import os
import subprocess
#メモ帳へのパス
app1 = os.path.join(os.environ['WINDIR'],'notepad.exe')
#メモ帳を開く
subprocess.Popen([app1])
sleep(1) #ちゃんと開くまで1秒待つ
リスト1
メモ帳へのパスの部分はパスの連結と環境変数を使っています。詳しくは下のページを参照してください。
これでメモ帳が立ち上がります(図1)。
図1:起動したメモ帳
文字(日本語)を入力させる
日本語を入力するプログラムは以下の通りです(リスト2)。
s = u"メモ帳が立ち上がりました。"
paste(s)
リスト2
通して動かすと、メモ帳が立ち上がり、メモ帳のなかにテキストが入力され、下の図のようになります。
図2:メモ帳にテキストが入力される
注意「メモ帳が立ち上がりました。」の前にuが付いていますね。
SikuliXのプログラムはPythonを使っていますので、日本語を扱う時は、Pythonの流儀に従わなくてはいけません。
以下の記事を参考にして、文字コードに注意してくださいね。
まとめ
全部のプログラムを書くと下のようになります(リスト3)。
# -*- coding: utf-8
import os
import subprocess
#メモ帳へのパス
app1 = os.path.join(os.environ['WINDIR'],'notepad.exe')
#メモ帳を開く
subprocess.Popen([app1])
sleep(1) #ちゃんと開くまで1秒待つ
s = u"メモ帳が立ち上がりました。"
paste(s)
リスト3
こさい
うまく動きましたか?