2017年10月11日水曜日

[UWSC]起動して文字入力して保存してみた[一連の操作]

UWSCという開発ソフトを使って作り上げる作業を実際にやってみるカテゴリ。準備した自作関数や使い方、トラブルを記事にしていきます。得るものがあれば幸いです。

記事の内容

○一連の操作を通してやってみる
文字入力ダイアログを出す方法
メモ帳に文字入力を行う方法
保存する方法

スマホで閲覧されている方へ
このブログは画面横幅を広くしてあります。スマホ解像度での閲覧は厳しいと思いますので、ウェブバージョンへどうぞ。

ポク太郎です。
UWSCの目的はPC作業の自動化。そのためにメモ帳での一連の操作を通して行い全体の流れをイメージします。

この記事では、以下を行っています。
・ダイアログ表示→情報取得
・アプリの起動
・メモ帳へ文字入力
・保存ダイアログへ文字入力
・保存


PC自動化の一連の操作をやってみる

動作は、ファイル名を指定させるダイアログを出すメモ帳を立ち上げる文字入力をする保存ダイアログを出すファイル名を入力する保存するプログラムです。
自動化の一連の操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
         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標準関数
文字入力のダイアログを表示 戻り値=INPUT()
アプリケーションを起動する 戻り値=EXEC()
アプリIDを取得 戻り値=GETID()
文字列をアプリへ送信する SENDSTR()
キー情報をアプリへ送信する SCKEY()


記事の内容

記事の内容は伝わりましたでしょうか。
○一連の操作を通してやってみる
文字入力ダイアログを出す方法
メモ帳に文字入力を行う方法
保存する方法


【関連記事】
[UWSC]あいまいな画像認識の前に“できない理由”を調べる
人気![UWSC]firefoxやchrome上のリンクやボタン等を調べる方法
人気![UWSC]情報の吹き出し表示とクリップボードへ転送する関数
[UWSC]ファイル操作の関数






シェアされると喜びます。

0 件のコメント:

コメントを投稿