WindowStationを有効(Set)にしている環境で、バージョンアップを実施すると、設定情報が残留する可能性があります。
上記設定情報が残留したままの場合、WindowStationが正常に実施されない場合があります。
バージョンアップをする際には、WindowStationを無効(Relese)にして実施ください。
Windows環境において、多数のPCやサーバにROBOWAREをインストールする場合、表示やユーザによる対話操作による通常のインストール方法では、非常に手間がかかり現実的には困難となってしまいます。このような場合、ROBOWARE のインストーラーは、対話的な操作なしで自動インストールできるサイレントインストールをすることができます。
サイレントインストールする場合、Windows標準 msiexec.exe コマンドを使用します。
管理者権限でコマンドプロンプトを実行して、次のコマンドを入力してサイレントインストールします。
msiexec.exe /i RBF_Professional-V.M.R.P.msi /quiet (または略式 /q でも可能)
/quiet を/passive にすると進行状況バーのみ表示されます。
WindowsのUACの機能が有効の場合、UACの機能はそのままの設定でインストールされます。
サイレントインストールの場合は、サンプルスクリプトは導入されません。
正常にインストールが完了するとデスクトップモードで起動されます。
インストールに失敗した場合、エラーログはWindowsのイベントビューアーに出力されます。
ユーザによる対話操作なしでWindowsのUACの機能を無効にしたい場合、コマンドプロンプトからRBFのUtilityコマンドより無効にすることができます。
RBF_UacCTL.exe -uac=off
名称変更バッチスクリプトを実行してください。
OemNameSettingsフォルダをフォルダごと任意の場所に保存します。
管理者権限でコマンドプロンプトを実行して、次のコマンドを入力してサイレントインストールします。
cd "OemNameSettingsフォルダのフルパス"
OemName.bat
同フォルダ内にOemName.logが出力されるので正常終了を確認してください。
RBFサーバの停止/起動を実行してください。
Microsoft Internet Explorer(以下IE)を起動させる場合、WindowsのIEは、32bitと64bit版それぞれのEXEファイルが用意されています。しかしながら、IEの仕様として32bitのIEを起動させても、64bitのIEとして起動されてしまいます。
正確には、一度32bitのIEが起動し、その後64bitのIEとして起動され直すため、プロセスIDが異なってしまいます。
APIのExecProcess()で32bitのIEを起動した場合、:pidには32bitのIEのプロセスIDを記録しますが、実際に起動しているIEは64bitのプロセスIDとなりますのでお気をつけください。
Microsoft Internet Explorer(以下IE)が既に起動している状態で、ROBOWAREのAPIであるExecProcess()からIEを起動
した場合には、ExecProcess()の引数の:pidで取得した値と、APIのGetPID()メソッドで取得される:pidの値が異なります。
これはIEの仕様が既にIEが起動されている場合は、後から起動したIEは、最初に起動しているIEにプロセスIDが統合されるためです。
回避策として、ExecProcess()でIEを起動する際に、:paramsに引数の値として-noframemergingを指定して起動させる方法があります。
この引数で与えた-noframemergingのオプションは、既に起動しているIEにマージさせず、新規でIEを起動するオプションとなります。
ROBOWAREでは 、ROBOWARE同士のリレー(中継)でTCPセッションを確立することにより、ROBOWAREの実行を指示しようとしている端末とは別の端末の終端ホスト対して、RBF APIメソッドを実行させることができます。
たとえば、RBF Managerを利用して、遠隔地のROBOWAREが導入されている終端ホストとしてのPCに対して、あるJOBを実行する場合などは、実行したいJOBのソースプログラムに記述されている外部ライブラリィの呼び出しや、ifやforループなどのプログラム固有の機能はそのままでは実行できず、ROBOWAREのAPIのみの実行が可能です。
このようなケースで、API以外のコーディング部分も実行させたい場合は、そのプログラムを実行させたい終端ホストにも同じJOBのソースプログラム(Ruby、PHPの場合)、または実行ファイル(Java、C#の場合)を配置しておく必要があります。その際に、使用したいJOBを実行できるようにするために、そのプログラムを同じ言語環境や、ライブラリがアクセスできる環境などが必要です。
こうした、開発時に実行確認した時と同様の環境を整えることで、ROBOWAREは、Open APIを接続後、そのプログラムを実行するように指定しておけば、API以外のコーディング部分についても、別端末の終端ホストでも実行が可能になります。
ROBOWAREでは、APIのOpen()メソッドを使って、目的のホストまでのTCPセッションを確立します。
ROBOWAREは、Windowsまたは、Linux上で稼働しているプロセス名に対するPID(プロセスID)を取得可能です。
ROBOWAREには、プログラムによってクリップボードのテキストの読み書きができるAPIがあります。
ユーザが利用するPCでROBOWAREのRBFサーバの停止または起動や、RBFアプリケーションをユーザから安易に操作させたくない場合は、下記の設定をすることで簡単に操作させることを防げます。
① RBFランチャーの操作を無効に設定
RBF_Launcher.exeの引数 -disable を指定して実行すると、RBFランチャーの起動が無効に設定されます。解除する場合は、引数 -enableで実行します。
引数は、コマンドプロンプト画面にて起動オプション -h で実行し、引数を指定しないで実行すると何もしないで終了します。
② タスクトレイのアイコンの無効化
RBFサーバがデスクトップモードで実行中に表示されるタスクトレイのアイコンについて、右クリックまたは左クリックすると表示されるRBFランチャーやポップアップメニューを無効にするには、RBFサーバの環境設定ファイル(RBF_Server.config) の設定で、キー名 tasktray_icon_clickを無効に設定します。
アイコン自体を非表示にしたい場合、キー名tasktray_icon_dspを非表示に設定するとアイコンは表示されません。
環境設定ファイルの変更後は、RBFサーバを再起動してください。
尚、RBFサーバを手動で停止または起動させることが完全に出来なくさせる訳ではありません。
必要に応じてコントロールパネル ⇒ 管理ツール ⇒ サービスの設定からRBFサーバマネージャのサービスの設定で停止や開始させることはできます。
この際に、サービス名 Robowiser Service Managerは停止させないでください。
ROBOWAREには、Speech()という、音声合成によってテキストを読み上げてくれるAPIがあります。
リモートデスクトップ接続を「全画面表示」で行うと一部のシステムキー
(CTRLやALT等)が正常に入力されない場合があります。
これは、リモートデスクトップの仕様で、システムキーの入力が、リモートデスクトップの
接続先ではなく、接続元で入力されてしまうためとなります。
回避策と致しまして、リモートデスクトップ接続を行う際は、「全画面表示」以外で
接続する必要があります。
Java及びRuby環境で、RBFサーバへの接続設定の「host_charcode」を'Shift_JIS'に
設定している場合、環境依存文字等が文字化け場合があります。
Java及びRubyでの'Shift_JIS'は、環境依存文字や、特殊文字には対応していません。
対策と致しまして、「host_charcode」をコメントアウトし、OSが使用している文字コードを
使用するか、Javaでは'MS932'、Rubyでは'CP932'を指定して、
マイクロソフト標準Shift_JIS(Windows31-J)を使用するように設定する必要があります。
「host_charcode」とは、ROBOWAREのAPIの Open( )の引数で、Telnet/SSHサーバの文字コードを指定します。
'EUC-JP', 'UTF-8', 'Shift_JIS', 'ASCII-8BIT'の何れか指定します。
使用法は、マニュアルをご確認ください。
ROBOWAREのデスクトップモードで、画面操作を行う場合にうっかりマウスやキーボードを触ってしまった場合、ウインドウが前に配置されてしまったりして予期しない動きで処理が止まってしまう心配があります。
ウィンドウを表示する場合にどのあたりに、どのくらいの大きさで表示するかを固定したい場合があります。
ROBOWAREの特長として、IDやパスワードの入力域などを特定する場合に、HTMLソースに記述されているタグの情報をもとにテキストデータを入力できるAPIがあります。
これを使えば、画像マッチングや座標を指定する必要なく正確にデータを入力することが可能になります。
ROBOWAREやQuickROBOの特長として、Windows環境限定(つまりLinuxは除外)ですが例えばマウスクリックする対象として、画像や座標以外にテキスト文字を認識して対象にすることができます。
MouseClick()のAPIでテキスト文字を対象にしたい場合は、アイコン等の画像に付随させているテキスト文字の設定がされてあれば、そのテキスト名を指定することで画像をクリックさせることができます。
クリックできるテキスト文字は、モニター画面(デスクトップ画面)に表示されたテキスト文字全てが対象になります。
このとき座標を指定する必要はありません。
ROBOWAREで提供しているAPIの引数は、基本的にハッシュ型を採用しております。
QuickROBOは、ROBOWAREのPC操作を記録、再生するユーティリティソフトです。
ROBOWAREは、 RBFサーバをインストールした後、スタートメニューからRBF Launcherを起動できるようになります。
ROBOWAREは、ROBOWARE Framework を略して RBF といいます。
QuickROBOは、人の入力操作を記録させる特性上、RBF QuickROBOが動作するPC全体のベンチレート(処理能力)が低く、人が操作を記録する時に人の入力操作が早いとRBF QuickROBOが人の操作を記録する時に処理が追いつかず操作の記録漏れが発生し易くなる場合があります。
QuickROBOは、画像や座標だけではなく、テキストも認識対象としており、他のツールに比べ、記録や動作に時間がかかるように感じられると思います。
マウス・キーボード操作を記録させる場合、普段入力している人の操作速度でなく、ロボットに操作を覚えさせる為のロボットに教育を行っていると言う事を念頭において、入力は、ゆっくり、慌てず、丁寧に入力するように心がけてください。特に1操作ずつキャッチャーウィンドウ画面に表示させる情報を確認しながら入力操作するようにしてください。
QuickROBOは、低スペックのPCでは記録できる量や速さに問題が発生する可能性があるため、下記をご参照ください。(Ver.1.1.3の例です。バージョンにより、異なる場合があります。)
項 目 |
構 成 |
CPU ※1 |
インテルR i5-3470,i7-3770以上、もしくは同等の性能のもの |
PC搭載メモリ |
4GB以上 推奨: 8GB以上 |
ビデオカード |
NVIDIAR GeForce 400 Series以上、もしくは同等の性能のもの |
常駐時使用メモリ |
60MB以上 |
必要ディスク容量 |
40MB以上の空き領域 |
Windows OS |
Windows 2008 Server 32bit/64bit |
ROBOWARE Fremework |
Version 1.1.3.n 以上 がインストールされている必要があります。 |
モニター解像度 ※2 |
WUXGA(1920x1200)以下を推奨 DPIスケーリング96DPI(100%) |
※1 PCの処理能力が著しく低いと人の操作を記録する時に操作漏れが発生し易くなりますので注意ください。
PCの処理能力の参考として目安は2011年代PCのハイスペック以上の処理能力を有するものとなります。あくまで目安である点に注意ください。
※2 DPIスケーリングが96(100%)以上の場合、表示が拡大されることで表示されない項目や操作を再生できない事象が発生する場合がありますので注意ください。
ROBOWAREは、RPA特有のマウスやキーボード操作を画面上で見せながら操作するかどうか、それとも、マウスやキーボード操作を行わずバックグラウンドでの処理を行うか、両方が選択できます。
Windowsが起動時は、ROBOWAREはサービスモードで実行されております。通常のROBOWAREの動作では、WindowsにログオンすることでRBFがサービスモードからデスクトップモードに切り替わります。
Windowsにログオンしたユーザのデスクトップ上で、RBFサーバが実行されている状態がデスクトップモードで、ROBOWAREによってPCの画面操作が行えます。一方、ROBOWAREが、画面表示しながらマウスやキーボード操作を行わないのがサービスモードです。
もちろん、デスクトップモードでも、たとえばエクセルファイルのデータ編集など、コーディングの仕方で、画面に出さずバックグラウンドで行う処理を混在させることは可能です。
Windowsのマウスやキーボード入力などの操作に伴い、表示されているウィンドウを制御するRBF APIを使用する場合は、このデスクトップモードで起動しなければUIを制御することができません。これは、サービスモードの場合、デスクトップ画面(マウス・キーボード)を持っていない為、UI操作することができないためです。
Windowsで使用しているマウスやキーボードを疑似的に操作しているため、デスクトップモードでROBOWAREがマウスやキーボードを操作中に人がマウスやキーボードを動かしてしまうと、そちらに制御が渡り予測不可能な不具合が生じる場合がありますので、ご注意ください。
スタート時の設定や、APIで人の介入ができないように、ロックしたり解除したりの指定ができます。(KMILock)
多くのRPAツールの仕様で問題となるのが、スクリーンロック状態でのロボットの起動です。
セキュリティポリシーにもよりますが、一般的な企業では席を離れる場合など、一定時間PCにアクセスがないとスクリーンロックされてしまいます。
スクリーンロック状態でスケジュールされてソフトウェアロボットを動かすとき、あるいは遠隔地からそのPCでソフトウェアロボットを起動したい場合は困ってしまいます。
ROBOWAREでは、ExecProcessというAPIでIE(Internet Explorer)などのプロセスの実行が可能で、それを終了するためには、KillProcessというAPIももちろん用意されています。
メンバー限定のWebサイトや特定業務のアプリなど、IDやパスワードを入力しないと次へ進めない業務システムは多くあります。
RPAツールでパスワードを自動入力させてしまうと、その設定情報にパスワードが記録されてしまいセキュリティ上非常に危険です。
さらに、パスワードを変更するたびに、ソフトウェアロボットへの指示の設定を変更しなければならなくなるため、絶対に避けるべきです。
パスワード等絶対に知られてはいけない情報は、RPAツールの設定に残してはいけなため、そのような業務はRPAの対象から外すべきという本末転倒な意見もあるようですが、サイバー攻撃等に対処できるセキュアな管理下にあるパスワードファイルから読み取るようにすれば、かなりリスクを解除できます。
テレワークが流行ってきている昨今、在宅勤務中や、帰宅後などに家から会社にあるPCで社内のファイルサーバにアクセスしたい場合など、会社のPCが電源オフの状態では困るケースがあります。
ソフトウェアロボットは、本来OSが起動していることが前提なため、多くのRPAツールでは、この状況に対応できません。
しかしながら、ROBOWAREは、WindowsのWake On LAN(WOL:ウェイク・オン・ラン)の仕組みを利用して、ROBOWAREから
MagicPacket を送信して遠隔地からの電源投入が可能です。
MagicPacketSend( )という、APIを使えば、電源をONにしたいコンピュータのMACアドレスを引数に指定するだけで、MagicPacket が送信できます。
この場合、起動したいコンピュータは事前にWOLの機能を有効にしておく必要があります。
マジックパケットは、セグメント越えはできないため、目的のコンピュータが別のネットワークセグメントにある場合は、同一セグメント上のRBFサーバまでリレー通信させて、セグメント越えする必要があります。
これについては、クロス・ヘッド株式会社が作成したROBOWAREのデモ動画 「ロボットによるPCの自動起動と制御 」をご参照ください。
ROBOWAREをインストールまたは、実行する時は、該当のPCまたはサーバに、ウイルス・スパイウェア対策ソフトウェアまたは情報漏洩対策ソフトウェアが稼働していると、ROBOWAREがOSや他のアプリケーションを制御する性質上、ROBOWAREの実行ファイルやモジュールが削除される場合や、処理がブロックされる場合があります。
よって該当する
Windowsの大型アップデートをする場合は、必ずROBOWAREの入手先に動作状況の確認をお願いします。
高い画像解像度ディスプレイを使用されている場合(例えば2K以上のディスプレイ)で、高DPIの為、スケーリングレベルを拡大表示(150%以上等)に設定されている場合、ROBOWAREに付随するユーティリティ・アプリケーションの画面表示が正しく表示されない場合があります。
その場合は、スケーリングレベルを125%以下にするなどの調整をする必要があります。
ROBOWAREを起動時にフォルダオプション(またはエクスプローラオプション)で「登録されている拡張子は表示しない」が有効であった場合は無効に設定されます。
有効に設定するとRBF APIの処理で一部のファイルの拡張子が見つからない為にファイルが存在しないエラーで失敗する可能性がありますので、必ず「登録されている拡張子は表示しない」は無効に設定してください。
[補足]
スケーリングレベルとはディスプレイに使用される表示倍率のことを示します。
コントロールパネル ⇒ ディスプレイ で表示される項目内に表示倍率を変更できる項目がありますのでご確認ください。
Windows版のROBOWAREは、基本32bitアプリケーションです。32bitアプリケーションが動作できる環境となりますが、64bit OS環境でも動作するハイブリットアプリケーションです。
Linux版のROBOWAREは、32bit専用、64bit専用のアプリケーションが用意されております。
ROBOWAREでウィンドウを制御したい場合、そのターゲットとなるウィンドウのウィンドウハンドルを取得する必要があります。
「ウィンドウ」は、Microsoft Windowsが管理するオブジェクトにあたり、メニューバーやボタン、リストボックスなどもウィンドウとして扱います。
ROBOWAREに限らず、多くのRPAツールでPCの画面操作を自動化するときに困るのは、PCの画面を開発したときと同じ状況にしておかないと期待通りに動かない場合があるということです。
たとえば、エクスプローラが複数起動してしまっていたり、他のアプリの画面が表示されてしまっていたりすると、操作したいWindowが設定していた画面とは表示の順番が違ってしまってエラーになったりします。
もちろん、毎回同じ画面の状態にするという稼働条件が守られていれば問題ないのでしょうが、いちいちどんな状態で自動化の設定をしたのか覚えておくのは大変です。これは、ROBOWAREの場合、デスクトップモードで動かす時に注意が必要になるのですが、手っ取り早いのは、初めにデスクトップクリアの処理を入れてしまうことです。
ROBOWAREに自動化処理を設定するためには、Ruby、PHP、Java、C#を使用してAPIを使ったコーデイングが必要になります。
つまりは、これらの言語にてソフトウェアロボットの開発を行うわけですが、通常はサンプルを参考にしながら、少しづつコーデイングをして期待した動きをするかどうかを、何度も実行して確認をします。
ROBOWAREは、運用に乗せる段階では、ROBOWAREのRBF Managerに登録してスケジュール実行しますが、開発の途中では、このRBF Managerに登録しても、修正のたびにファイルを指定して再登録する必要があるため使用しません。
これは、実行したいジョブの登録内容の編集画面で、プログロムを修正するたびにファイルを指定して、もう一度ファイルを読み込まなければ修正箇所が反映しないからです。
そのため、たとえばWindows環境のRubyで開発している場合、コマンドプロンプトからの実行をお勧めしています。
スタートメニューからWindowsシステムツールのコマンドプロンプトを選び、
cd "C:\Program Files (x86)\Robowiser\RBF_Host\Samples\Ruby"
と打ち込めば、サンプルスクリプトのある場所にディレクトリを変更でき、あとは、
"ruby ファイル名"
でサンプルの実行ができます。(事前にサンプルファイルをコピーして環境に合わせ編集してください)
ちなみに、チェンジディレクトリをする際には、"cd "の後に実行したいファイルがあるフォルダを、エクスプローラからコマンドプロンプトにドラック&ドロップすれば、長いパスでも簡単に指定できます。
ROBOWAREをインストールすると、Ruby、PHP、Java、C#について、それぞれの言語にあわせたサンプルコーデイングのファイルが格納されます。
たとえば、Windows環境のRubyの場合、下記のような場所にあります。
C:\Program Files (x86)\Robowiser\RBF_Host\Samples\Ruby
ROBOWAREは、Ruby、PHP、Java、C#のそれぞれで指定が可能な約80のAPIを提供しており、これらのAPIで480通り以上の多彩な操作を実現できます。 このROBOWAREのAPIに、プロセス名や座標などの引数を与えるだけで、マウスやキーボード操作など簡単にスクリプトが作成できます。
スクリプトを実行するRBFホストのOSがWindowsの場合に、終端でソフトウェアロボットが稼働するRBFホストの環境がLinuxであっても制御可能です。APIは、WindowsとLinuxのそれぞれの環境によって、指定条件等が変わり、Windowsに比較して、Linuxは使用できるAPIが少ないです。そのため、スクリプト実行RBFホストのOSがLinuxで、終端RBFホストがWindowsでも可能ですが、終端RBFホストのOSで指定できる引数が異なる場合があります。
ROBOWAREには、いろいろなカテゴリーのAPIがあり、各プログラミング言語のリファレンスマニュアルには、該当APIがどのサンプルスクリプトに例文があるのかも記載されているため、使用したいAPIは、サンプルスクリプトを参考にしながら指定すれば比較的簡単に指定ができます。
・TCP接続開始、終了、エラーに関するAPI Method
・OSまたはプロセスのリソース取得設定に関するAPI Method
・OSまたはプロセス制御に関するAPI Method
・通信に関するAPI Method
・メールに関するAPI Method
・Windows UI制御に関するAPI Method ・・・ 他
<ROBOWARE APIの例>
GetActiveProcessNum() 実行されているプロセス数を取得
GetCPUusageRate () 指定のPIDまたはOS全体のCPU使用率を取得
AddRemovePrograms() インストールされたソフト一覧の取得/アンインストール
ExecProcess () プロセスや実行ファイルを起動
FileTransfer () ファイルを転送
SendMail() メールを送信
WindowCapture() ウィンドウをキャプチャーする
KeyboardTyping() 指定のウィンドウハンドルにキー入力
TermPrint() Telnet/SSHサーバにコマンドを送信する …etc
ROBOWARE独自の用語は下記です。
■ RBF
ROBOWARE Framework を略して指します。
■ RBF API
RBFつまりROBOWAREが提供する各種APIです。
■ RBFホスト
RBFつまりROBOWAREがインストールされているコンピュータです。
■ RBFサーバ
RBF APIの命令に基づき処理を実行、または通信リレーを行うサーバソフトウェアです。
■ RBF API実行RBFホスト
RBF APIを使用して作成されたプログラムを実行するRBFホスト、つまりROBOWAREの自動化ジョブを実行するコンピュータです。
プログラム内部のRBF API命令はRBFサーバにより処理されます。
■ 通信リレー
プログラムが実行されるRBFホストからの通信を、別のRBFホストが通信を中継することをいいます。NAT越えされる場合も含まれます。
■ 終端RBFホスト
RBF API実行RBFホストから命令が通信リレーされ、命令が実行される終端のRBFホストをいいます。
この他にも、ROBOWAREのソフトウェアを意味する場面では、”RBF”が使われており、ROBOWAREを起動するときのランチャーは、RBF Launcher、管理ツールのRBF Managerは、スタートメニューから実行できます。
ROBOWAREは、自動化したいPCまたはサーバに導入します。
インストーラによって、簡単に導入できます。
①言語環境のインストール
たとえば、日本語版のRubyをインストールします。
②ファイアウォールポート開放設定
TCP37000送信&受信ポートの開放が必要です。
③ ROBOWARE(RBF Professional)のインストール
RBF_Progessional-V.M.R.P.msi
④ RBF Manager(RBF Manager)のインストール
RBF_Manager-V.M.R.P.msi
RBF Managerのインストールは、管理コンソールが必要なPCだけの導入になります。
ROBOWAREをインストールするとオプションのQuickROBOもインストールされます。ライセンスキーを適用しない状態で
QuickROBOを起動すると自動的にトライアルが開始されます。
導入後、サンプルスクリプト集が、各プログラミング言語(Ruby,Java,PHP,C#)毎に導入先フォルダに格納されます。