T034 WindowStationを有効にしている環境でのバージョンアップ注意事項


WindowStationを有効(Set)にしている環境で、バージョンアップを実施すると、設定情報が残留する可能性があります。
上記設定情報が残留したままの場合、WindowStationが正常に実施されない場合があります。
バージョンアップをする際には、WindowStationを無効(Relese)にして実施ください。


[関連]

 T033 サイレント インストール


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サーバの停止/起動を実行してください。


[関連]
ロボット作成の手引き①  -サンプル起動編- ROBOWAREのインストール

 T032 IE 32bit版プロセスIDの注意事項


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となりますのでお気をつけ下さい。


[関連]
T031 IE起動時の注意事項

 T031 IE起動時の注意事項


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を起動するオプションとなります。


[関連]
T011 IEの終了方法

 T030 別端末で実行する場合の注意事項


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以外のコーディング部分についても、別端末の終端ホストでも実行が可能になります。


[関連]
T029 終端ホスト

 T029 終端ホスト


ROBOWAREでは、APIのOpen()メソッドを使って、目的のホストまでのTCPセッションを確立します。

t-029p.png
終端ホストとは、RBF APIメソッドを実行させたいホストのことです。

引数 :relay_hostに、 目的のホストにRBFサーバ経由で中継(リレー)させる場合、配列変数に経路のIP(またはFQDN)を指定します。
通信リレーは配列順にリレーされ、配列要素の最後が終端ホストになります。
リレーさせる経路が1ホストだけの場合、Stringで指定することができます。リレーしない場合は省略でき、引数 :relay_host を省略すると、終端ホストは :rbf_server となります。

Open()の成功後に、送受信データが全くない時間が、New()で指定した:timeout時間を経過した場合は、全ての通信経路のセッションがクローズされます。

接続先の指定で、RBF APIの引数では全てIP:Port または FQDN:Port の書式で指定します。
IPアドレス(FQDN)とポートの区切り文字 : の両端にスペース文字等は禁止です。
ポートを指定しない場合、IPアドレス(FQDN)のみの指定となります。
その他、詳細はマニュアルを参照願います。


[関連]
T003 APIの種類

 T028 プロセスIDの取得


ROBOWAREは、Windowsまたは、Linux上で稼働しているプロセス名に対するPID(プロセスID)を取得可能です。

t-028p.png
GetPID( )のAPIを使えば、終端RBFホストのプロセス名に対するPIDを取得します。プロセスが複数実行されてある場合、配列に格納して返します。
たとえば、Windowsであれば、タスクマネージャーを使用して調べていたプロセスIDを、プログラム中で取得できるので実行中のプロセスを特定するのに便利です。

終端RBFホストがLinuxの場合は、GetPID()は、終端ホストで下記のコマンドを内部で実行してPIDを取得しております。
pidof  ':proc_name'


[関連]
T003 APIの種類

 T027 クリップボードの読み書き


ROBOWAREには、プログラムによってクリップボードのテキストの読み書きができるAPIがあります。

t-027p.png
ClipboardText( )のAPIを使えば、終端RBFホストつまりROBOWAREを実行したいPCのクリップボードのテキスト文字について、読み込み、または書き込みを行えます。
このメソッドを使用するには、ROBOWAREがデスクトップモードで起動されている必要があります。

指定する引数は、’wirhte'か'read'で書き込みか読み込みかを指定し、書き込みの時には、テキストの値を入力として、読み込みの時には、クリップボードのテキスト文字が:textに出力されます。

通常のPC操作をしているときに”CTRL+C”や、”CTRL+V"のショートカットでクリップボードを使って、コピー&ペーストしている操作と同様に、変数とかを気にせずクリップボードを利用できるのでわかりやすく便利です。


[関連]
T019 テキスト文字の認識

 T026 ユーザにROBOWAREを操作させたくない場合


ユーザが利用する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は停止させないでください。


[関連]
T016 RBF Launcher

 T025 音声合成による発声


ROBOWAREには、Speech()という、音声合成によってテキストを読み上げてくれるAPIがあります。

t-025p.png
Windows専用のメソッドとなります。というのも、Speech()メソッドは、 Windows標準に搭載されている音声合成エンジンを使用しています。それ故、テキスト文字を音声合成として発声させる変換は、Windowsに依存しており、オーディオスピーカー、あるいはイヤホン等のデバイスが接続されている必要があります。

この合成音声は、かなり人間に近いわかりやすい声です。このメソッドを使用すれば、報告書やWeb記事を読み上げるプログラムが簡単に作れます。しかも、ボリュームだけでなく、引数で速さや音程を変更することができるので、聞きやすい声をチューニングすることもできます。

お勧めの使用方法は、何か異常を知らせる場合に、コンソールへログの表示だけでなく、エラー処理の部分にエラー内容を読み上げるようにプログラムしておけば、ROBOWAREが作業中に業務担当者が他の事務処理等を行っていても、音声で異常を知らせてくれます。警告のためのビープ音だけでなく、声でエラー内容も分かるのでたいへん便利です。
しかも、Speech()メソッドが呼ばれた時点のスピーカーの設定状態を保存しておいて、設定を一時的に変更しても合成音声による発声終了後に、保存された設定に戻す引数もあります。


[関連]
T019 テキスト文字の認識

 T024 リモートデスクトップ接続での注意事項


リモートデスクトップ接続を「全画面表示」で行うと一部のシステムキー (CTRLやALT等)が正常に入力されない場合があります。
これは、リモートデスクトップの仕様で、システムキーの入力が、リモートデスクトップの 接続先ではなく、接続元で入力されてしまうためとなります。
回避策と致しまして、リモートデスクトップ接続を行う際は、「全画面表示」以外で 接続する必要があります。


[関連]

 T023 「host_charcode」について


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'の何れか指定します。 使用法は、マニュアルをご確認下さい。


[関連]
T003 APIの種類

 T022 マウスやキーボードのロック


ROBOWAREのデスクトップモードで、画面操作を行う場合にうっかりマウスやキーボードを触ってしまった場合、ウインドウが前に配置されてしまったりして予期しない動きで処理が止まってしまう心配があります。

t-022p.png
ROBOWAREでは、そうしたトラブルを防ぐために、人によるマウスのクリックとキーボードの入力操作を無効にするKMI(Keyboard Mouse Interface)ロックを実行するKMILock( )というAPIがあります。
これがあれば、ROBOWAREが実行中 にうっかり誰かがPCを使用して自動化業務を止めてしまうリスクを回避できます。
KMIロック中は、デスクトップの中央にポップアップウィンドウのメッセージが表示され入力操作が無効になっていることをお知らせすることもできます。
KMIロックを解除するためのキーボタン入力パターンは、引数でも指定できますが、デフォルトでは、CTRL + ALT + ESC キーを同時に押すと解除できます。
もちろん、引数の指定でKMIロックを解除する方法もありますが、必要に応じて図の例のように、プログラミングによって、タイマーで解除もよいかもしれません。
このAPIでは、KMIロックと同時にディスプレイモニターの電源をOFFにするの引数も指定できます。

ROBOWAREが稼働中にキー操作でKMIロックを行ないたい場合は、デスクトップモードで稼働していることが前提ですが、タスクトレイのRBFサーバのアイコンを右クリックするとメニューが表示されKMIロックを選択することにより、ロックできます。
KMIロックの動作は、RBFサーバの環境設定ファイル(RBF_Server.config)の設定で指定された動作となります。


[関連]
T013 デスクトップモードとサービスモード

 T021 ウィンドウ表示位置やサイズの調整


ウィンドウを表示する場合にどのあたりに、どのくらいの大きさで表示するかを固定したい場合があります。

t-021p.png
SetWindowSizeAdjust( )のAPIを使えば、簡単にウィンドウの位置とサイズが、引数で指定できます。
図の例では、X座標に100、Y座標に100、幅が1400、高さを900で指定しています。単位は、ピクセルです。
このAPIのおかげで、見やすい位置やサイズで表示できることはもちろん、例えば、いつも左上の位置に固定するなどして座標でしかクリック位置を取りづらい場合などに便利です。
このAPIは、Windows専用で、もちろんデスクトップモードで動きます。

ちなみに、引数で指定するトップウィンドウの表示位置の座標(:screen_x, :screen_y)が、モニタのスクリーン領域内にトップウィンドウが全て表示されない座標を指定された場合は、全てが表示されるようスクリーン座標上の位置に座標が自動的に調整されウィンドウが移動します。これはトップウィンドウ枠の一部がスクリーン領域外にはみ出さないようにすることで、マウスがトップウィンドウ内の全ての座標をクリックできるようにするものです。
但し、指定したウィンドウの幅 (:width_x) や高さ(:hight_y)が狭すぎてボタン等が隠れてしまうサイズを指定された場合は、ボタンは隠れたままのサイズになります。これは、スクリーン座標上のウィンドウの表示位置の座標は自動的に調整しますが、ウィンドウの幅と高さは、引数で指定したウィンドウの幅(:width_x)や高さ(:hight_y)がそのまま適用される為です。


[関連]
T019 テキスト文字の認識

 T020 <INPUT>タグを指定した入力


ROBOWAREの特長として、IDやパスワードの入力域などを特定する場合に、HTMLソースに記述されているタグの情報をもとにテキストデータを入力できるAPIがあります。 これを使えば、画像マッチングや座標を指定する必要なく正確にデータを入力することが可能になります。

t-020p.png
IE_InputText()は、IE/Edgeに表示されたHTMLタグ<INPUT>または<TEXTAREA>を検索してテキストを入力(書き込み)またはテキストを取得するメソッドです。このメソッドは、IE/Edgeコンポーネントを使用しています。ROBOWAREはデスクトップモードで起動している必要があります。
Windowsのセキュリティの仕様により、IE/EdgeのHTMLコンテンツ内のスクリプトで出力(表示)されている場合は、正しくHTMLソースを取得できなくてHTMLタグの検索に失敗する場合があります。
目的のタグを検索できるかどうかは、RBF Analyzerを起動して、IE/Edgeにファインダアイコンを持っていき、子クラス名 'Internet Explorer_Server' を指定します。次に「子テキスト」ボタンをクリックして、表示されたInnertext(テキスト文字)内に目的のタグの文字があれば入力できます。

図の例では、nameが'password'という<INPUT>タグに、ファイルから読み込みんだパスワードを入力させています。 その後、確認とLOGを残すために、<INPUT>タグの文字を読み込んでいます。


[関連]
T010 パスワード自動入力方法

 T019 テキスト文字の認識


ROBOWAREやQuickROBOの特長として、Windows環境限定(つまりLinuxは除外)ですが例えばマウスクリックする対象として、画像や座標以外にテキスト文字を認識して対象にすることができます。
MouseClick()のAPIでテキスト文字を対象にしたい場合は、アイコン等の画像に付随させているテキスト文字の設定がされてあれば、そのテキスト名を指定することで画像をクリックさせることができます。
クリックできるテキスト文字は、モニター画面(デスクトップ画面)に表示されたテキスト文字全てが対象になります。 このとき座標を指定する必要はありません。

t-019p.png

但し、画面に表示されたテキスト文字を指定して目的のテキスト文字がクリックできるかどうかは、事前にRBF Analyzer にて調べる必要があります。これは、文字に見えても、Webページ上では、画像として貼り付けてあると文字とは認識されないためです。
文字として認識できれば、引数に渡すテキスト文字を入手できますが、そこで表示される文字パターンに合わせて*(任意の文字)や?(任意の一文字)などのワイルドカードも使用できます。引数に指定するテキスト文字は、大文字と小文字が区別されます。

マウスクリックする場所として、テキストも選択できることは、他のツールに比べてかなり優位となります。一般的な RPAツールでは、画像としてパターンマッチングすることは、比較的簡単であるため多くのツールがサポートしていますが、テキスト文字をクリック対象として判別できません。文字を認識できるメリットとして、OKや天気など、画面上のレイアウトやデザインが少しぐらい変わったとしても、文字の内容は変えない場合が多いためリスクが少なくなります。
そしてなによりありがたいのが、文字としてクリックすることにより、コピーや切り取りの対象にできることです。
ROBOWAREやQuickROBOでは、他のツールでは不可能と思われたドラッグ&ドロップの操作も行えます。これにより、普段業務担当者が行っているオペレーションに近い動きを可能にします。


[関連]
G003 API
ソフトウェアロボット作成の手引き③ RBFアナライザー編

 T018 ハッシュ


ROBOWAREで提供しているAPIの引数は、基本的にハッシュ型を採用しております。

t-018p.png
ここで使われているハッシュとは、複数のオブジェクトへの参照をまとめて管理することができるオブジェクトのことで、連想配列とも呼ばれています。
ROBOWAREでは、APIに対して、キーとなる項目に対してのデータを、簡単に引数で指定できるようにこのハッシュを使用しており、このハッシュの使い方が分かれば、簡単にロボット開発ができます。

ROBOWAREのAPIの引数で使用するハッシュ変数は、入力と出力で同じハッシュ変数を使用します。 同じハッシュ変数に対して、引数入力用の指定されたキー名と出力用の指定されたキー名があります。 ハッシュに設定するキー名は、全て小文字となります。

ハッシュ自体は、ROBOWAREの専門用語ではありませんので、Web検索等で参考情報がたくさん集められます。


[関連]
G003 API
G020 ROBOWAREのロボット開発とは?

 T017 QuickROBO操作イメージ


QuickROBOは、ROBOWAREのPC操作を記録、再生するユーティリティソフトです。

t-017p-1.png

ROBOWAREのRBFランチャーから、RBF QuickROBOを選んでクリックすると、QuickROBO用の別のランチャーが表示されます。
一番左にある録画アイコンをクリックすれば、QuickROBOのキャッチャーウィンドウが現れます。
左上のQuickROBOのロボアイコンのお腹のスクリーンにマウスが現れている時は、操作記録モードです。
赤色になっているバーが、記録する条件内容となります。
マニュアルに従ってゆっくりオペレーションをすれば、操作が記録でき、操作数が表示されます。

t-017p-2.png
記録した操作を再生するには、左上のロボアイコンをクリックすると、操作の編集モードに切り替わり、キャッチャーウィンドウが下に追加表示されます。
この画面では、人によるマウスのクリックではなく、QuickROBOでクリック指定したり、1つ前の操作に戻ることなどができます。
操作記録の一覧を表示すれば、そこから操作の編集もできます。

そうして記録した操作は、最終的に拡張子が.uidのファイルとして名前をつけて保存します。
保存した.uidのファイルは、起動するプログラムをQuickROBOに関連づけておけば、そのファイルをダブルクリックするだけで簡単に動かすことができます。もちろん、ROBOWAREのプログラムからAPIで呼び出すこともできます。


[関連]
T014 QuickROBOの稼働環境

 T016 RBF Launcher


ROBOWAREは、 RBFサーバをインストールした後、スタートメニューからRBF Launcherを起動できるようになります。

t-016p.png

ROBOWAREをインストールすると、図のような構成が構築されます。
これは、RBF アプリケーションランチャー(以降:RBF ROBOWAREランチャー)で、ROBOWAREの各アプリケーションを起動するメニューです。

起動すると、図のように8個のROBOWAREの画像がついたアイコンが画面に現れます。
それぞれのアイコンは、マウスでドラッグ&ドロップすることでデスクトップ上の任意の場所に移動させることができるので、好きな所へレイアウトできます。
RBFランチャーのアイコン上で右クリックするとアイコンの表示位置を中央や上下左右にリセットすることができます。

① RBF Server Desktop Mode ・・・ RBFサーバをデスクトップモードで起動
② RBF Server Service Start ・・・ RBFサーバをサービスモードで起動
③ RBF Server Stop ・・・ RBFサーバを停止
④ RBF Server Startup CTL ・・・ Windowsログオンした時に、デフォルトモードの設定
⑤ RBF Server Debug Mode ・・・ デバッグモードで起動
⑥ RBF Application Analyzer ・・・ RBF アナライザを起動
⑦ RBF QuickRobo ・・・ QuickROBOオプションを起動
⑧ RBF Launcher Close ・・・ RBFランチャーを終了


[関連]
ソフトウェアロボット作成の手引き③ RBFアナライザー編

 T015 RBF基本構成


ROBOWAREは、ROBOWARE Framework を略して RBF といいます。

t-015p.png

ROBOWAREをインストールすると、図のような構成が構築されます。
Ruby、PHP、Java、C#のいづれかのスクリプトプログラムからRBF API(Method)を呼ぶとTCP通信経由で、APIの命令が常駐しているRBFサーバ、つまりROBOWAREで実行されます。
Windows版のRBFソフトウェアは、基本32bitアプリケーションです。32bitアプリケーションが動作できる環境となりますが、64bit OS環境でも動作するハイブリットアプリケーションです。
Linux版のRBFソフトウェアは、32bit専用、64bit専用のアプリケーションが用意されております。


[関連]
T002 ROBOWAREの専門用語

 T014 QuickROBOの稼働環境


QuickROBOは、人の入力操作を記録させる特性上、RBF QuickROBOが動作するPC全体のベンチレート(処理能力)が低く、人が操作を記録する時に人の入力操作が早いとRBF QuickROBOが人の操作を記録する時に処理が追いつかず操作の記録漏れが発生し易くなる場合があります。
QuickROBOは、画像や座標だけではなく、テキストも認識対象としており、他のツールに比べ、記録や動作に時間がかかるように感じられると思います。
マウス・キーボード操作を記録させる場合、普段入力している人の操作速度でなく、ロボットに操作を覚えさせる為のロボットに教育を行っていると言う事を念頭において、入力は、ゆっくり、慌てず、丁寧に入力するように心がけて下さい。特に1操作ずつキャッチャーウィンドウ画面に表示させる情報を確認しながら入力操作するようにして下さい。

QuickROBOは、低スペックのPCでは記録できる量や速さに問題が発生する可能性があるため、下記をご参照下さい。

■ 動作環境

項 目

構 成

CPU ※1

インテルR i5-3470,i7-3770以上、もしくは同等の性能のもの
推奨: CPUクロック 3.2GHz、クアッドコア以上

PC搭載メモリ

4GB以上 推奨: 8GB以上

ビデオカード

NVIDIAR GeForce 400 Series以上、もしくは同等の性能のもの
推奨: ビデオメモリ 2GB以上

常駐時使用メモリ

60MB以上

必要ディスク容量

40MB以上の空き領域

Windows OS

Windows 2008 Server 32bit/64bit
Windows 2012 Server
Windows 2016 Server
Windows 7 32bit/64bit
Windows 8.1 64bit
Windows 10 64bit
※日本語フォントがインストールされている事が必要です。

ROBOWARE Fremework

Version 1.1.3.n 以上 がインストールされている必要があります。

モニター解像度 ※2

WUXGA(1920x1200)以下を推奨 DPIスケーリング96DPI(100%)

※1 PCの処理能力が著しく低いと人の操作を記録する時に操作漏れが発生し易くなりますので注意ください。
PCの処理能力の参考として目安は2011年代PCのハイスペック以上の処理能力を有するものとなります。あくまで目安である点に注意ください。
※2 DPIスケーリングが96(100%)以上の場合、表示が拡大されることで表示されない項目や操作を再生できない事象が発生する場合がありますので注意ください。


[関連]
G005 QuickROBOが必要な理由

 T013 デスクトップモードとサービスモード


ROBOWAREは、RPA特有のマウスやキーボード操作を画面上で見せながら操作するかどうか、それとも、マウスやキーボード操作を行わずバックグラウンドでの処理を行うか、両方が選択できます。

Windowsが起動時は、ROBOWAREはサービスモードで実行されております。通常のROBOWAREの動作では、WindowsにログオンすることでRBFがサービスモードからデスクトップモードに切り替わります。
Windowsにログオンしたユーザのデスクトップ上で、RBFサーバが実行されている状態がデスクトップモードで、ROBOWAREによってPCの画面操作が行えます。一方、ROBOWAREが、画面表示しながらマウスやキーボード操作を行わないのがサービスモードです。
もちろん、デスクトップモードでも、たとえばエクセルファイルのデータ編集など、コーディングの仕方で、画面に出さずバックグラウンドで行う処理を混在させることは可能です。

Windowsのマウスやキーボード入力などの操作に伴い、表示されているウィンドウを制御するRBF APIを使用する場合は、このデスクトップモードで起動しなければUIを制御することができません。これは、サービスモードの場合、デスクトップ画面(マウス・キーボード)を持っていない為、UI操作することができないためです。

Windowsで使用しているマウスやキーボードを疑似的に操作しているため、デスクトップモードでROBOWAREがマウスやキーボードを操作中に人がマウスやキーボードを動かしてしまうと、そちらに制御が渡り予測不可能な不具合が生じる場合がありますので、ご注意下さい。
スタート時の設定や、APIで人の介入ができないように、ロックしたり解除したりの指定ができます。(KMILock)

t-013p.png

ROBOWAREのRBFアプリケーションランチャーのショートカットアイコンで、RBFサーバをデスクトップモードで起動するか、サービスモードで起動するかを選択できます。

RBFサーバのモードの自動切り替えは、設定のパターンにより自動的に切り替わる時の動作が異なります。マニュアルをご参照ください。

デスクトップモードで起動するとタスクトレイにアイコンが表示されます。
タスクトレイのRBFサーバのアイコン表示は、環境設定ファイルの設定で非表示にすることができます。


[関連]
T022 マウスやキーボードのロック

 T012 スクリーンロックの解除


多くのRPAツールの仕様で問題となるのが、スクリーンロック状態でのロボットの起動です。
セキュリティポリシーにもよりますが、一般的な企業では席を離れる場合など、一定時間PCにアクセスがないとスクリーンロックされてしまいます。
スクリーンロック状態でスケジュールされてソフトウェアロボットを動かすとき、あるいは遠隔地からそのPCでソフトウェアロボットを起動したい場合は困ってしまいます。

t-012p.png

ROBOWAREには、それを解除できるWindowStationというAPIが用意されております。
このAPIを使えば、逆にROBOWAREでスクリーンロックを実行したりすることなどもできます。
スクリーンロックとは、スクリーンセイバーとは違い、再開時にログイン認証が必要となるので、図の例のようにmethodの引数に'Logon'を入れることで、スクリーンロックを解除します。

ちなみに、'Logout'を指定すると、強制ログアウトが実行されるので、ログアウトを実行するプログラムがその同じPCで実行されている場合は、Windowsから強制終了されてしまいます。ログアウトを行いたい場合は、別PCからリモートでログアウトすることをお勧めします。

スクリーンロックを外す行為をロボットができてしまうのは心配という声もありますが、ロック解除には、ロックをした人のユーザ名、パスワードが必要なので、そちらの管理の問題となります。例にある、WINDOWS_USERとWINDOWS_PASSWORDという変数には、隠れている前のコーデイング部分で解除するためのIDとパスワードがセットされています。
スクリーンロックを解除する場合のユーザ名とパスワードは、ロックされたPCでログオンしているユーザと異なるユーザを指定しても解除できません。
さらに、遠隔地から不正にプログラムを使って侵入されないように、Windows Staionの使用には、必ずROBOWAREの有効なパスコードが事前にセットされていることが必要になります。

その他、設定になるタイミングなど注意すべき事項が多いですので、マニュアルをご参照下さい。


[関連]
T010 パスワード自動入力方法

 T011 IEの終了方法


ROBOWAREでは、ExecProcessというAPIでIE(Internet Explorer)などのプロセスの実行が可能で、それを終了するためには、KillProcessというAPIももちろん用意されています。

t-011p.png
こうしたAPIを利用すれば、引数で、閉じるボタンを押した場合と同じ処理だとか、強制終了をするかどうかとか、修了確認までの待ち時間なども指定できるため、その状況に応じてハンドリングするにはもってこいです。
しかしながら、修了させたいプロセスのPIDも把握しておく必要もあり、特にエラー時の対応方法が必要ない場合とかであっても、少し指定が面倒な気がします。

そんなとき、スマートな終了の仕方として、「ALT + F4キー」を押した動作を実行するというやり方があります。
図の例を参照してもらうと、それまでの処理の流れで親ハンドルとしてhwnd_ie_topという変数に記憶していたIEのウインドウハンドルを指定して、「ALT + F4キー」を実行しています。
この時、KeyboardTypingというAPIを使っていますが、これは他のアプリにも応用が利きます。
ショートカットキーで実行できる処理は、これを使えば、アナライザーで座標認識させる必要がなくスムーズな場合が多いです。

尚、key_strokeに指定すべき引数のキーコード定数名称は、マニュアルをご参照下さい。


[関連]
T003 APIの種類

 T010 パスワード自動入力方法


メンバー限定のWebサイトや特定業務のアプリなど、IDやパスワードを入力しないと次へ進めない業務システムは多くあります。
RPAツールでパスワードを自動入力させてしまうと、その設定情報にパスワードが記録されてしまいセキュリティ上非常に危険です。
さらに、パスワードを変更するたびに、ソフトウェアロボットへの指示の設定を変更しなければならなくなるため、絶対に避けるべきです。

パスワード等絶対に知られてはいけない情報は、RPAツールの設定に残してはいけなため、そのような業務はRPAの対象から外すべきという本末転倒な意見もあるようですが、サイバー攻撃等に対処できるセキュアな管理下にあるパスワードファイルから読み取るようにすれば、かなりリスクを解除できます。

t-010p.png
右図が、Internet ExplorerのWebページでのRubyのパスワード設定の例です。

もちろん、それぞれの会社のセキュリティーポリシーに従った対応が必要ですが、この例では、BitLockerで暗号化されたローカルのDドライブにパスワードの入ったテキストファイルを置きます。もちろん、他のPCとはアクセス共有出来ない設定です。

①で、セキュアなドライブから、パスワードのテキストを読みます。

②で、ROBOWAREのAPIであるIE_InputTextを使って、画面上のパスワードのインプットエリアに、読み込んだパスワードを自動的にキーインします。
この時、実際の表示画面上でキーボード操作とおなじように、テキストが入力されるため、ゆっくり確認できるよう、sleep2を入れています。

③INPUTタグにうまく入力できているかの確認で値を読み込み、コンソールメッセージとして表示します。

④INPUTタグの入力がうまくいっている場合は、IE_TagClickというAPIを使用して、ログインボタンを押します。
今回のように、ROBOWAREでは、IE(Internet Explorer)専用のAPIを使用すれば、アナライザーでクリックするボタンの情報を取得しなくても、表示画面のhtmlソースを見てボタンクリックの指定ができます。

(尚、ROBOWAREには、HiddenStringというAPIがあります。 このAPIは、スクリプトのソースやHTMLソース等などにパスワードや秘密文字を記述したい場合に、秘密文字を読み取られないように文字列をテキスト文字形式で暗号化して目隠しさせます。)


[関連]
T012 スクリーンロックの解除

 T009 リモートでPCの電源をONにする方法


テレワークが流行ってきている昨今、在宅勤務中や、帰宅後などに家から会社にあるPCで社内のファイルサーバにアクセスしたい場合など、会社のPCが電源オフの状態では困るケースがあります。
ソフトウェアロボットは、本来OSが起動していることが前提なため、多くのRPAツールでは、この状況に対応できません。 しかしながら、ROBOWAREは、WindowsのWake On LAN(WOL:ウェイク・オン・ラン)の仕組みを利用して、ROBOWAREから MagicPacket を送信して遠隔地からの電源投入が可能です。

MagicPacketSend( )という、APIを使えば、電源をONにしたいコンピュータのMACアドレスを引数に指定するだけで、MagicPacket が送信できます。

この場合、起動したいコンピュータは事前にWOLの機能を有効にしておく必要があります。
マジックパケットは、セグメント越えはできないため、目的のコンピュータが別のネットワークセグメントにある場合は、同一セグメント上のRBFサーバまでリレー通信させて、セグメント越えする必要があります。

これについては、クロス・ヘッド株式会社が作成したROBOWAREのデモ動画 「ロボットによるPCの自動起動と制御 」をご参照下さい。


デモ動画⑦ 【音声付】



[関連]
RPA概説④ AI搭載を見据えたRPAの実装方法とは?
T003 APIの種類

 T008 ROBOWAREを動作させる為の注意点


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専用のアプリケーションが用意されております。


[関連]

 T007 ウィンドウハンドル


ROBOWAREでウィンドウを制御したい場合、そのターゲットとなるウィンドウのウィンドウハンドルを取得する必要があります。
「ウィンドウ」は、Microsoft Windowsが管理するオブジェクトにあたり、メニューバーやボタン、リストボックスなどもウィンドウとして扱います。

t-007p.png
「ウィンドウハンドル」とは、Microsoft Windowsにおいて、ウィンドウごとに附番される番号のことで、32 ビットの正の整数であり、Windows では、ウィンドウ、またはフォントやビットマップなどのその他のオブジェクトの識別に使用されます。

ROBOWAREでは、FindWindowHnd()メソッドによって、そのウィンドウハンドルを取得できます。

このメソッドを使用するには、ROBOWAREのRBFサーバがサービスモードからの起動ではなく、デスクトップモードで起動されている必要があります。
FindWindowHnd()メソッドを使用するには、事前に引数に設定する目的のウィンドウ情報を取得する必要があり、目的のウィンドウ情報は、RBF Application Analyzerにて取得します。


[関連]
T003 APIの種類

 T006 デスクトップのクリア


ROBOWAREに限らず、多くのRPAツールでPCの画面操作を自動化するときに困るのは、PCの画面を開発したときと同じ状況にしておかないと期待通りに動かない場合があるということです。
たとえば、エクスプローラが複数起動してしまっていたり、他のアプリの画面が表示されてしまっていたりすると、操作したいWindowが設定していた画面とは表示の順番が違ってしまってエラーになったりします。
もちろん、毎回同じ画面の状態にするという稼働条件が守られていれば問題ないのでしょうが、いちいちどんな状態で自動化の設定をしたのか覚えておくのは大変です。これは、ROBOWAREの場合、デスクトップモードで動かす時に注意が必要になるのですが、手っ取り早いのは、初めにデスクトップクリアの処理を入れてしまうことです。

t-006p.png
つまり、Windowsの場合、画面の一番右下をクリックすることで、一瞬にデスクトップが表示され、開いていたWindowがすべて見えなくなる処理のことを指しています。
この処理をすれば、複数のWindowが表示されている状態であっても、ROBOWAREを動かした時にデスクトップの状態から始められるので、PCの画面上の動きがすっきりします。
但しこの動きは、立ち上がっていたアプリを閉じるわけではないので、業務によっては目的が違う場合があるのでお気を付けください。

さて、ROBOWAREでの設定ですが、すぐに思いつくのがROBOWAREで画面右下をクリックする処理を組み込む方法ですが、その場所にはアナライザが使えないので難儀します。
ちなみに、QuickROBOで記録しようとすると、カーソールを右下に持っていった時点でマウスオーバーだけでもデスクトップがクリアされてしまうため、前面表示していたQuickROBOのwindowも一緒に消えてしまいます。なかなか簡単ではないようです。

方法としては、テスクトップクリアのプログラムをROBOWAREの”ExecProcess()”のAPIで起動させてしまえば簡単です。
下記が、Rubyで指定した場合の例です。

proc0 = {
:exe_name => 'C:\\Windows\\explorer.exe shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}',
}
if gai.ExecProcess(proc0) then Terminate::Exit(gai); end

ちょっと邪道かもしれませんが、もし、QuickROBOでデスクトップクリアをしたいなら、事前に'C:\\Windows\\explorer.exe shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}'のショートカットを作成して、タスクバーに入れておけば、QuickROBOでも簡単に記録できます。


[関連]
T003 APIの種類
T013 デスクトップモードとサービスモード

 T005 開発時の実行方法


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 "の後に実行したいファイルがあるフォルダを、エクスプローラからコマンドプロンプトにドラック&ドロップすれば、長いパスでも簡単に指定できます。

t-005p.png

コマンドプロンプトの良い点は、2回目以降の実行の際に、右矢印でカーソールを動かせは、先ほどキーインした"ruby ファイル名"の内容がそのまま表示され簡単です。

尚、実行の際はRubyのプログラムのパスが通るように、「Rubyの実行ファイルへ環境変数PATHを設定する」にチェックしてRubyをインストールしてあればよいのですが、自動設定できていない場合は、Windowsの「システムの詳細設定」の「環境変数」を変更してください。
開発時はこの方法をとることにより、何度修正しても簡単にROBOWAREを実行できます。
そして何より、コンソールメッセージが出力されるので、開発時のエラーメッセージや実行状況を確認したりするのに便利です。


[関連]
ソフトウェアロボット作成の手引き ①サンプル起動編
T004 サンプルスクリプト

 T004 サンプルスクリプト


ROBOWAREをインストールすると、Ruby、PHP、Java、C#について、それぞれの言語にあわせたサンプルコーデイングのファイルが格納されます。
たとえば、Windows環境のRubyの場合、下記のような場所にあります。
C:\Program Files (x86)\Robowiser\RBF_Host\Samples\Ruby

t-004p.png
PC操作等の自動化のために、ROBOWAREにどのように指示をしたらよいのか、サンプルを基に修正してコーデイングができるようになっています。
プログラミング経験があまりない方にも分かり易いように、サンプルの内容は、数多くのコメントで解説されております。

このサンプルをコピーして新規のファイルとして保存し、言語の種類ごとユーザが使い慣れたエディタを使用してスクリプトをコーディングします。
JavaやC#は、コンパイラとインタプリタの両方の側面がありますが、「スクリプト」という表現を使用しているのは、RubyやPHPも含め、インタプリタ形式でプログラミングできるためです。
スクリプト言語とは、プログラミング言語のうち、プログラムの記述や実行を比較的簡易に行うことができる言語の総称であるため、このサンプル集は、サンプルスクリプトという表現を使用しています。

実際にサンプルを実行させて、サンプルスクリプト内のAPIを変更するなど試行をしながら、APIを短期間で効率よく習得し、作成できる方式になっています。
Ruby、Java、PHP、C#の各言語ごとに用意されている50種類以上のサンプルスクリプトファイルより、参考になりそうなサンプルコーディングを選びます。
各言語のマニュアルを基に、APIを使い、ROBOWAREに対してどのようにオペレーションするかを、プログラミング言語によって指示します。


[関連]
T003 APIの種類

 T003 APIの種類


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


[関連]
T004 サンプルスクリプト

 T002 ROBOWAREの専門用語


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は、スタートメニューから実行できます。


[関連]
T001 ROBOWAREインストール手順

 T001 ROBOWAREインストール手順


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#)毎に導入先フォルダに格納されます。

t-001p.png

[関連]
T002 ROBOWAREの専門用語
*このページに記載されている内容は、予告なしに追加変更いたします。修正すべき箇所がございましたら、ESrabbit@cec-ltd.co.jp (担当:春日井)へご連絡願います。