Outlook関連ライブラリにタイムアウトを追加したい
いつもお世話になっております。
Outlook関連のライブラリで「Outlookメーラ起動」や「Outlook メール送信(メーラ起動、停止含む)」などがありますが、
今回はそのスクリプト部分についての質問です。
(WinActorというよりはvbscriptの質問がメインです)
これらのライブラリではOutlookを起動する際に以下のような処理を行っています。
-----------------------------------------------
'Outlookの起動と受信トレイの表示
Set objApp = CreateObject("Outlook.Application")
objApp.GetNamespace("MAPI").GetDefaultFolder(6).Display
-----------------------------------------------
ライブラリによってはobjApp.GetNamespace("MAPI").GetDefaultFolder(6).Displayの部分を分解して
-----------------------------------------------
'名前空間の指定
Set myNameSpace = oApp.GetNamespace("MAPI")
'作業フォルダーの指定と表示
Set myFolder = myNameSpace.GetDefaultFolder(6)
myFolder.Display
-----------------------------------------------
のようになっているものもあります。
<主題>
上記処理のうち、GetDefaultFolder(6)というメソッドが30秒以内に処理が完了しなければエラーを出すように機能を追加したい。
あるいは、別にGetDefaultFolderにこだわる必要はなく、別のメソッド等で目的が果たせるなら代替手段を教えてほしい。
<背景>
うちの環境ですが、ExchangeのメールをOutlookで送受信しています。
この環境でWinActorのシナリオ内でメールを送信する際、Outlookが起動できない事象が頻発しています。
このOutlookが起動できない事象ですが、「Outlookメーラ起動」などのノードを実行するとOutlookのプロセスだけは起動するもののウィンドウが開かず処理が完了しないという事象です。このときノードはエラーにもならず延々と実行中の状態です。
上記のスクリプトを調査したところ、CreateObject("Outlook.Application")とGetDefaultFolderの間に待機時間(300ミリ秒くらい?)を設けてやると割と安定しそうだということが分かりました。
この結果から、恐らくはExchangeのプロファイルデータにアクセスするのに時間が掛かりGetDefaultFolderがフリーズしているものと推測しました。
ただ、この推測が正しいとすると状況によっては300ミリ秒の待機では足りないのかも?と思っています。
(プロファイルへのアクセスに時間が掛かる原因は不明。ネットワーク回線の状況によるものか、あるいはセキュリティソフトなど別の何かか)
この不安を払拭したい、というのが今回の目的です。
要は正常に起動できたなら問題なし、起動できないならエラーを出したいということで、1行のスクリプトで躓いて無限実行状態にならないようにしたいです。
<追記>
Exchangeのサーバ情報(IPアドレスやポート番号など)はセキュリティの関係で調べることができません。
この状態でWinActorメール管理が使えるのかは不明です。対処法をご存じの方がいらっしゃれば、そちら方面のアイディアも歓迎します。