最終更新日:2022年8月26日

こさい
こさい

こんにちは。完全自動化研究所の小佐井です。
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の流儀に従わなくてはいけません。

以下を参考にして、文字コードに注意してくださいね。

参照【SikuliX】やっかいな文字コードを攻略しよう!

まとめ

全部のプログラムを書くと下のようになります(リスト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

うまく動きましたか?

関連記事