< | >

受注ソフトの自動起動と自動操作
  • (2009-10-27 05:27:10)
毎日一定の時刻に受注ソフトを立ち上げる。これは定型化された業務なので飽きもせず、担当者か私が毎日繰り返している。

それが仕事といえば仕事。

自動化できるものは一つでも二つでも自動化したいと考えが強くなるこの頃、受注ソフトの自動起動と自動操作をさせるようになった。

Windowsにはスケジューラーがあるので起動自体は問題ない。

オートパイロットソフト(自動化ソフト)

操作させるためのソフトはオートパイロットソフトを探す。

MS系列のソフトウェアだと、各アプリケーションソフト間をつなぐOLEという基盤技術があって、各アプリケーションソフトウエアはそのベース上に設計されているのでVBやVBScriptなどで、さまざまな自動化を実現するプログラムが書けるようだ。

私は少しか使えなし経験もほとんどないので実際のところは理解不足だが、Excel上でVBAのプログラムを書いているとMSの各アプリケーションソフトが「地下茎でつながっている」ことを実感し、マイクロソフト社のソフトウェア開発に対する構想の大きさや深さに痛く感動する。

しかし、MS社製以外のソフトウェアは必ずしもそうではないのでキーボード操作やマウス操作をエミュレートするソフトで自動化することになる。

UWSC

ネットで探すといろいろでてくる。その中で、UWSCは完成度の高さに感動した。

レコーダー機能があるので、実際のキーボード操作やマウス操作を覚えてくれて操作内容をテキスト文に落としてくれる。それらはあとで編集することができる。マウスの位置やクリックする時間などもテキストで変更することができる。

UWSCの完成度の高さは準備されたいる関数やコマンドの多さが第一点目。シンプルなスクリプト言語が二点目。

それとたんなるキーボード・マウスの操作情報の収集でなく対象となるアプリケーションのプロパティ情報を収集することだろうか。そのため的はずれなアプリケーションに対して意味のない操作を回避できる。

受注ソフトを起動し一連の操作を巡回しクローズして最後に終了するまでの動作は何とか書き上げた。

一点問題が残った。起動時にいきなり立ち上がるのではなく、「今から起動します!」のようなポップアップメッセージを出して数秒後に立ち上げるイントロにしたかった。

多くの言語同様、MSGBOX(メッセージボックス)コマンドが準備されているが、「OK」「Cancel」かユーザーの入力待ちになってしまう。操作が一定時間なければ「OK」で自動的に進行するようにしたい。

プログラミングになれている人ならすぐに見つけだせると思うが、ヘルプを見てもネットを引いても探し出せなかった。美しくないが、他の自動化ソフトで「一定時間なければ「OK」押す」と同等機能を実現するためだけのスクリプトを入れることにした。

AutoHotKey

それでまたまた自動化ソフを探す。

AutoHotKeyなるソフトウェアを発見。何でもできそうだ。そもそもキーボードの配列をソフト的に変更するキーボード置換ができる。これは今は必要ないが、昔欲しかった。Run、Send、SetTimerなどコマンド類も豊富でわかりやすい。スクリプト言語もこなれていそう。

もっと早く知っていればスタッフの仕事をどれだけ軽減してくれたと思うが、今後勉強して大いに活用させてもらいたい。ライセンスはGPL。

WSH

もう一つ。灯台下暗し。凄いのに今ひとつ話題性がないWSH(Windows Script Host)。

AutoHotKeyでもよかったが、今回はたまたまWSHの方を利用させてもらった。

スケジューラーの下記のvbsファイル(GoodMorning_uwsc.vbs)を登録

Set WSHShell = Wscript.CreateObject("Wscript.Shell")

intMsg = WSHShell.Popup("受注ソフトを5秒後に起動。中止は「Cancel」ボタン", 5, "カウントダウン", vbOKCancel)

If intMsg = vbCancel then

WScript.Quit

End if

WSHShell.Run "C:\GoodMorning_uwsc.exe" '自動操作するexe化したUWSCを起動。






<< 順々に壊れていく設備と機材< | >「消込」ではまる日々 >>
search
layout
admin

[▲page top]