シナリオ
※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()