UWSC|起動して文字入力して保存してみた【一連の操作】

ポク太郎です。

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\
変数path1path2を設定。
変数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行目は保存ダイアログ上の「保存」ボタンを選択しろという命令。

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標準関数

使用したUWSC標準関数
文字入力のダイアログを表示 戻り値=INPUT()
アプリケーションを起動する 戻り値=EXEC()
アプリIDを取得 戻り値=GETID()
文字列をアプリへ送信する SENDSTR()
キー情報をアプリへ送信する SCKEY()

UWSCの便利な記述方法の話題
配列変数と関数【使い方まとめ】 関数の定義と呼び出し方【使い方まとめ】 関数とモジュールの書き方・使用法【使い方まとめ】
本記事の内容は以下でした。
○一連の操作を通してやってみる

文字入力ダイアログを出す方法
メモ帳に文字入力を行う方法
保存する方法

コメント

タイトルとURLをコピーしました