MailStore Home を自動化する VB.NET

MailStore Home は、メールをアーカイブするソフトです。
メールをバックアップするのにとても便利なので、自動化して、
一定時間ごとにアーカイブするようにしました。

引数付きでMailStore Home を起動することで、直接アーカイブを実行することができます。
"C:\Program Files (x86)\MailStore\MailStore Home\MailStoreHome.exe" /c archive --id="1"
idを確認するには、MailStore Home を起動してEメールのアーカイブの画面で、
自動化したいプロファイル名を右クリックしてショートカットを作成します。
ショートカットのプロパティを見れば、IDがわかります。
多分、削除したプロファイルも含めて連番がふられているようです。

VB.NET で プロセスを起動し、アーカイブを実行。
進捗ウィンドウを監視して、終了を検知したら、
MailStore HomeのウィンドウにWM_Close を送信して終了させます。

実際に使用してみると、ハンドルが取得できないことがある。
結構多発する。
???

調べたらありました。
Process.Start()で起動したプロセスのメインウィンドウのハンドルが取得できない場合の対処法 | Slotware Blog

なるほど。ウェイトすればなんとかなりそうです。

後はこのソフトの起動を自動化すればOKです。

※ 後にアーカイブ起動後にエラーが起こることがあることが判明し、その場合にリトライする処理を加えました。