ポク太郎です。
UWSCの目的はPC作業の自動化。全体の流れをイメージするため、メモ帳での一連の操作を通して行ってみます。
この記事では、以下を行っています。
・ダイアログ表示→情報取得
・アプリの起動
・メモ帳へ文字入力
・保存ダイアログへ文字入力
・保存
・アプリの起動
・メモ帳へ文字入力
・保存ダイアログへ文字入力
・保存
PC自動化の一連の操作をやってみる
行った自動化一連の操作は、
〇ファイル名指定のダイアログ出す
→メモ帳立ち上げる
→文字入力する
→保存ダイアログ出す
→ファイル名入力する
→保存する
〇ファイル名指定のダイアログ出す
→メモ帳立ち上げる
→文字入力する
→保存ダイアログ出す
→ファイル名入力する
→保存する
path1="C:\Windows\notepad.exe"
path2="C:\Users\(ユーザー名)\Desktop\"
filename=INPUT("ファイル名を入力してください")
IF filename="" or filename=EMPTY
filename="ポク"
ENDIF
EXEC(path1)
SLEEP(0.2)
id1=GETID("メモ帳")
FOR i=1 TO 10
SENDSTR(id1,"ポク"+i)
SCKEY(id1,VK_ENTER)
NEXT
SCKEY(id1,VK_CTRL,VK_S)
SLEEP(0.2)
id2=GETID("保存")
SENDSTR(id2,path2+filename+".txt",2,true)
// SCKEY(id2,VK_ENTER)
CLKITEM(id2,"保存",ITM_BTN)
SCKEY(id1,VK_ALT,VK_F)
SCKEY(id1,VK_X,100)
1,2行目 | 1 2 |
path1=“C:\Windows\notepad.exe“ path2=“C:\Users\(ユーザー名)\Desktop\“ |
変数path1、path2を設定。 変数path1はメモ帳のパスです。 変数path2はデスクトップを指定しました。“(ユーザー名)”の部分をご自身のPC用に書き換えてください。 |
||
4~7行目 | 4 5 6 7 |
filename=INPUT(“ファイル名を入力してください“) IF filename=““ or filename=EMPTY filename=“ポク“ ENDIF |
4行目のように書くと文字入力ダイアログを表示し、入力待ちになります。 5~7行目は空白入力、キャンセルを押されたときの処理です。 ファイル名は必要ですので、変数filenameに必ず文字が代入されるようにしています。 |
||
9,10行目 | 9 10 |
EXEC(path1) SLEEP(0.2) |
9行目のように書くと変数path1(メモ帳)を起動します。 不要かもですが、余裕をみて0.2秒間の休止期間を入れています。(起動待ち) |
||
12~16行目 | 12 13 14 15 16 |
id1=GETID(“メモ帳“) FOR i=1 TO 10 SENDSTR(id1,“ポク“+i) SCKEY(id1,VK_ENTER) NEXT |
12行目のように書くとタイトルに“メモ帳”の文字列を含むウィンドウのアプリIDを取得します。 13~16行目でアプリIDid1のウィンドウ(メモ帳)に文字列を送信しています。14行目が文字入力、15行目が改行です。10回繰り返します。 |
||
18,19行目 | 18 19 |
SCKEY(id1,VK_CTRL,VK_S) SLEEP(0.2) |
アプリIDid1のウィンドウ(メモ帳)にCTRL+S(保存のホットキー)を送信しています。 不要かもですが、余裕をみて0.2秒間の休止期間を入れています。(表示待ち) |
||
21~24行目 | 21 22 23 24 |
id2=GETID(“保存“) SENDSTR(id2,path2+filename+“.txt“,2,true) // SCKEY(id2,VK_ENTER) CLKITEM(id2,“保存“,ITM_BTN) |
今度は保存ダイアログのアプリIDid2を取得します。 22行目で保存ダイアログのファイル名入力部分に“「デスクトップのパス」+「ダイアログで指定させたファイル名」+「拡張子」”を送信しています。 第3引数はウィンドウの何番目の入力アイテムか?で変わります。総当りで調べた所、このダイアログでは2番でしたので2と書いてあります。第4引数は追記ならfalse、上書きならtrue。今は上書きしたいのでtrueです。 23、または、24行目で「保存」ボタンを押します。 23行目でも可能ですが人間が触ることでフォーカスが移動して別ボタンが押される可能性を排除するため、できる限り24行目のようにしたいところです。 |
||
26,27行目 | 26 27 |
SCKEY(id1,VK_ALT,VK_F) SCKEY(id1,VK_X,100) |
アプリIDid1のウィンドウ(メモ帳)にALT+FとX(終了のホットキー)を送信してします。 27行目の第3引数に100とあるのは、100msの待ち時間を入れろという意味です。 |
“自動化一連の操作”で使用したUWSC標準関数
文字入力のダイアログを表示 | 戻り値=INPUT() |
アプリケーションを起動する | 戻り値=EXEC() |
アプリIDを取得 | 戻り値=GETID() |
文字列をアプリへ送信する | SENDSTR() |
キー情報をアプリへ送信する | SCKEY() |
配列変数と関数【使い方まとめ】 | 関数の定義と呼び出し方【使い方まとめ】 | 関数とモジュールの書き方・使用法【使い方まとめ】 |
本記事の内容は以下でした。
○一連の操作を通してやってみる
○一連の操作を通してやってみる
文字入力ダイアログを出す方法
メモ帳に文字入力を行う方法
保存する方法
メモ帳に文字入力を行う方法
保存する方法
コメント