シナリオ
※SikuliXでこのような動きができるというサンプル。特に意味はない。実用性ゼロ。
- メモ帳を起動(Appクラスのメソッドから起動)
- メモ帳にメッセージを書き込み
- ワードを起動(ファイル名を指定して実行から起動)
- ワードの後ろに隠れたメモ帳をアクティブにする
- メモ帳のテキストをクリア後メッセージを書き込み
- ワードを閉じる
- メモ帳のテキストをクリア後メッセージを書き込み
- メモ帳をファイル名を指定して保存
- メモ帳を閉じる
動画
サンプルコード
import os
import sys
import datetime
reload(sys)
sys.setdefaultencoding("utf-8")
#######################################################################
# FUNCTION AREA
#######################################################################
# テキスト表示
def writetext(text):
    line = "---------------------------------\n"
    text = line + text + line
    paste(text)
# テキストクリア
def cleartext():
    type("a", Key.CTRL) # すべてを選択
    wait(1)
    type(Key.BACKSPACE) # 消去
# カウントダウン
def countdown():
    cnt = 5
    for i in range(5):
        type(str(cnt))
        cnt = cnt - 1
        wait(1)
# 指定画像の表示待ち
def waitprog(pic):
    try:
        wait(pic, 10)
    except:
        popup(u"タイムアウト")
        exit()
#######################################################################
# MAIN
#######################################################################
# メモ帳起動
notepadpath = os.path.join(os.environ["WINDIR"], "notepad.exe")
notepad = App.open(notepadpath)
# メモ帳に書き込み
string = u"このあとワードを起動します\n"
string += u"その後メモ帳をアクティブにします\n"
writetext(string)
countdown() # カウントダウン
# ワードを起動
type("r", Key.WIN) # ファイル名を指定して実行のショートカット
try:
    paste(Pattern("1616246410741.png").targetOffset(-5,95) ,"winword")
    type(Key.ENTER)
except:
    popup(u"例外エラー:ワード起動の失敗")
    exit()
# ワード起動待ち
waitprog("1616246876450.png") # 左記の画像が表示するまで待つ
# メモ帳をアクティブにする
notepad.focus()
wait(2)
# メモ帳の内容を消去
cleartext()
# メモ帳に書き込み
string = u"このあとワードを閉じます\n"
writetext(string)
countdown() # カウントダウン
# ワードを閉じる
App.close("Word")
# メモ帳をアクティブにする
notepad.focus()
wait(1)
# メモ帳の内容を消去
cleartext()
# メモ帳に書き込み
string = u"このあとメモ帳の内容を保存します\n"
writetext(string)
countdown() # カウントダウン
# 名前を付けて保存
type("s", Key.CTRL + Key.SHIFT)
# 保存ダイアログ表示待ち
waitprog("1616254249888.png") # 左記の画像が表示するまで待つ
# ファイル名指定:yyyymmdd_hhmmss.txt
date = datetime.datetime.today().strftime("%Y%m%d_%H%M%S")
path = u"c:\\sample\\" + date
# メモ帳ファイル保存
try:
    click(Pattern("1616255493247.png").targetOffset(111,0)) # ファイル名項目をクリック
    # 項目クリア
    cleartext()
    # ファイル名指定
    paste(Pattern("1616255493247.png").targetOffset(43,0), path) # ファイル名をペースト
    # ファイル保存
    click("1616257027856.png") # 保存
    # メモ帳を閉じる
    notepad.close()
except:
    popup(u"例外エラー:ファイル名保存の失敗")
    exit()

