=====================================         Windows Liveメール BCCの自動入力プログラム             WLBcc.exe Version 3.2 ===================================== ●概要 【ソフト名】 Windows Liveメール BCCの自動入力プログラム WLBcc 【登 録 名】 WLBccvr.zip 【バイト数】 xxx,xxxバイト 【著作権者】 A.Shimada(島田明雄) 【対応環境】 Windows XP, Vista, 7, 8 + Windows Liveメール2009, 2011, 2012 【動作確認】 Endeavor NT7100 (Windows XP Pro + Windows Liveメール2009) Endeavor NJ5100Pro(Windows Vista Ultimate + Liveメール2009) Endeavor NJ5100Pro(Windows 7 Home Premium + Liveメール2011) NEXTGEAR-NOTE i400PA3(Windows 7 Pro 64bit + Liveメール2011) NEXTGEAR-NOTE i400PA3(Windows 8 Pro 64bit + Liveメール2012) 【必要 DLL】 なし 【前  提】 .NET Framework 3.5 Windows オートメーション API ライブラリ 【開発言語】 Visual C# 2010 Express 【更 新 日】 2012/5/8 【種 別】 フリーソフトウェア 【サポート】 メールにて 【転載条件】 転載を希望される方は、事前に私宛にメールをください。 ●機能  複数のPCでメールを使うときに、サーバにメールを残す設定とし、送信メールを常  に自分宛にBCCすると各PCで受信できて便利です。このような場合にBCCを自動的に  設定できるとよいのですが、残念ながらWindows Liveメールにはこの機能がありま  せん。そこで、Windows Liveメールの送信画面の出現を監視し、現れたらBCCを自動  的に入力するプログラムを作ってみました。  Outlook Express用OEBcc.EXE、Windowsメール用WMBcc.EXEの類似プログラムです。  Windows XP、Vista、Windows7、及びWindows8で動作確認しています。  【重要! .NET Framework 3.5が必要です。】  【重要! Windows オートメーション API ライブラリが必要です。WindowsXP、  Vistaの場合、重要度 推奨の更新プログラムKB971513を適用して下さい。なお、  Vistaの場合、KB971513はKB971644に含まれています。これらの更新プログラムは  2009/10月末から11月初めに公開されています。Windows7, Windows8の場合、最初  から含まれており更新は不要です。】  Version3.0で、CCの自動入力をサポートしました。  Version3.1で、ボタンやフィールドの検索に日本語を使わないようにしました。  一応、Windows Liveメール2011の英語版での動作を確認しています。 ●配布ファイル  WLBcc.EXE  プログラム本体  WLBcc.exe.config 設定ファイル  StartWL.js  Windows LiveメールとWLBccを連続して起動するスクリプト例。使用 上のヒントをご覧下さい。  README.TXT  このファイル ●インストール  管理者権限を持つユーザアカウントで実行して下さい。ダウンロードしたファイル  WLBccvr.zipを右クリックしてすべて展開した後、展開されたWLBccvr.EXEを実行し  て下さい。ユーザアカウント制御のメッセージには「許可」を応答して下さい。  インストーラに従って処理を進めると、標準ではProgram Filesフォルダ下にWLBcc  フォルダを作成し、配布ファイルを配置します。また、All Usersのスタートアップ  にWLBcc.exeのショートカットを作成します。  [今すぐ実行する]をチェックして完了すると、直ちにWLBcc.exeを実行します。標準  ではSMTPアカウントのEmailアドレスがBCCアドレスになります。 ●アンインストール  通知領域のWLBccアイコンを右クリックしてメニューから終了させた後、管理者権限  を持つユーザアカウントで、コントロールパネルのプログラムのアンインストール  からWLBccを削除して下さい。ユーザアカウント制御のメッセージには「続行」を応  答して下さい。  なお、削除するのは配布ファイルのみで、ユーザ毎の設定ファイルのuser.config  は残しています。user.configは下のフォルダ内にあります。完全にアンインストー  ルする場合は"WLBcc.exe文字列"フォルダごと削除して下さい。  Windows XPの場合  C:\Documents and Settings\ユーザ名\Local Settings\Application Data\  SHIMAPEE\WLBcc.exe文字列\バージョン  Windows 7, Vistaの場合  C:\Users\ユーザ名\AppData\Local\SHIMAPEE\WLBcc.exe文字列\バージョン ●アップデート  通知領域のWLBccアイコンを右クリックしてメニューから終了させた後、管理者権限  を持つユーザアカウントで新しいWLBccvr.EXEを実行して下さい。アンインストール  の手続きの後、インストールの手続きとなります。 ●使用方法  (0)通知領域のWLBccアイコンをクリックすると設定画面が出ます。  ・アカウント :設定するアカウントを選択します。  ・CCアドレス :標準では空白です。必要に応じて設定します。  ・BCCアドレス :標準ではSMTPアカウントのEmailアドレスが取り込まれています。          アドレスを変更したい、複数箇所に送りたい、空白にしたい場合          などに設定します。  ・アカウント読み込み時のエラーメッセージを表示しない:空のアカウントファイル   などが存在してもエラーメッセージを表示しません。   設定後、OKボタンを押して保存し、実行させておきます。  (1)Windows Liveメールの作成、返信、転送画面を開くと、数秒後にCC, BCCアドレ   スが自動的に入力されます。CC, BCCボックスが表示されていない場合は自動的に   表示されます。   アカウントが複数ある場合、差出人を選択すると対応するCC, BCCアドレスが自動   的に入力されます。   自動入力はメールの作成画面が現れるごとに一度だけ行われます。すなわち手動   でCC, BCCアドレスを書き替えた場合は上書きされません。ただし差出人を選択す   ると上書きされます。   CC, BCCアドレスが入力済みの場合は上書きされません。これは下書きフォルダに   保存したメールを開いたり、mailto:?bcc=BCCアドレスのショートカットをクリッ   クした場合を想定しているものです。ただし差出人を選択すると上書きされます。  (2)通知領域のWLBccアイコンを右クリックするとメニューが現れ、CC自動入力の停   止、CC, BCC自動入力の一時停止、バージョン情報表示、プログラム終了ができま   す。バージョン情報表示ではアドレスが自動入力された回数がわかります。 ●使用上のヒント  (1)本プログラムは数秒ごとにWindows Liveメールの作成画面の出現を監視していま   す。この時間間隔はuser.config中のTimerIntervalでミリ秒単位に変更できます。   下記の3000の箇所を500〜10000に変更してお試し下さい。user.configを変更した   後は本プログラムを再起動して下さい。 3000  (2)Version3.0でCCの自動入力をサポートしましたが、機能が不要な場合は通知領域   のOEBccアイコンを右クリックし、[CC自動入力の停止]をチェックして下さい。こ   の設定は記憶されます。  (3)Version3.1でオプション「アカウント読み込み時のエラーメッセージを表示しな   い」をサポートしました。標準ではファイル名を含めてエラーメッセージを表示   しますので、該当するアカウントを再作成してみるのがよいと思いますが、再作   成できなかったり、再作成してもエラーメッセージが表示されてしまう場合には、   このオプションを使用して下さい。  (4)Windows LiveメールとWLBccを連動して起動、終了させることができます。ただ   し、mailtoをクリックしてメールを書き始めたような場合は明示的にWLBccを起動   する必要がありますのでご注意下さい。  ○準備   ・通知領域のWLBccアイコンを右クリックして終了して下さい。   ・All UsersのスタートアップのWLBccのショートカットを削除して下さい。  ○使用方法   Windows Liveメールの実行中にWLBccをコマンドラインパラメータ /T を指定して   起動して下さい。Windows Liveメールを終了させるとWLBccも終了します。   同梱のStartWL.jsは、Windows LiveメールとWLBccを連続して起動するWSH(Windows   Script Host)JScript例です。WLBccのインストール先を確認してお使い下さい。   ダブルクリックで実行できます。  ○更なるヒント   お奨めはStartWL.jsを右クリックしてショートカットを作成し、デスクトップに   置いておくことです。ダブルクリックで実行できます。更にそれを右クリックし   てプロパティからアイコンをWindows Liveメールのものに変更したり、ショート   カットキーを割り当てたりするとよいでしょう。   mailtoをクリックしてメールを書き始めたような場合、CC, BCCが自動入力されな   いことに気づいてから後追いで実行してもよいです。 ●注意事項  メールの作成画面は一時点には1〜2個、プログラムの仕組み上は最大10個までに  するのが無難です。メールは1件ずつ作りましょう。(^_^) ●プログラムの仕組みなど  (1)本プログラムはWindowsメール用のWMBccをベースに作成していますが、中身は全   く変わっていて、BCCボックスの参照と入力にはUI Automationを使っています。   プログラムの作成にあたり、UISpy.exeを入手して画面構成を調べました。  (2)Version 1.0公開後、ブラウザのLunascapeが正常に終了しなくなっているのに気   付きました。調べたところメール作成画面の検知にUI Automationのイベントを   使っているのが良くないようでした。このためVersion 1.5では、WMBccと同様に、   メール作成画面の検知にはタイマによるループとFindWindowを使うように戻しま   した。やや反応が鈍くなり残念です。  (3)タスクマネージャで見るとUI Automationは画面検知だけでもリソースを消費し   ます。このためVersion 1.5ではUI Automationの使用は最小限にしました。  (4)Version 1.6でMaxWorkingSetを設定できるようにしました。インストールフォル   ダのWLBcc.exe.configのWorkingsetでメガバイト単位で指定でき、BCCが入力され   るたびに設定します。  (5)2010/6/25 Windows Live Essentials (旧名: おすすめパック) Betaが公開され   ました。早速それに含まれるWindows Liveメール2010を試したところ動きません   でした。調べたところUI Automationのクラス名が変わっています。新旧両方のク   ラス名を受け付けるようにし、Version 2.0としました。  (6)Version 2.1で差出人コンボボックスの状態(ExpandCollapseState)を調べて、   ドロップダウンリストが開かれている場合は処理しないようにしました。  (7)Version 2.2で、メール本文にカーソルがある場合BCC入力後に戻すようにしまし   た。BCCを入力する前のFocusedElementを覚えておき、入力後、位置を調べ、必要   ならSetFocusします。そしてLiveメール2011では思惑どおり実現できたのですが、   なんと2009では動きません。本文欄にIsKeyboardFocusableのAutomationElemntが   ないのです。いろいろ試したところ、TABキーを押すと本文にカーソルが現れまし   たので、2009ではSendKeysで実現しています。as is度が増しています(苦笑)。  (8)Version 2.2でwlmail.exeのバージョン判定のためにHKLMレジストリを参照したの   ですが、64ビットWindowsで動作不可になってしまいました。Version 2.3ではUI   Automationのクラス名でバージョンを判定するようにしました。  (9)Version 3.0でCCの自動入力をサポートしました。別プログラムにすることも考   えたのですが、ロジックに大きな違いはないし、ソースを別管理するのも面倒な   のでWLBccのバージョンアップで実現しました。なお、機能が不要な場合は停止   できるようにしました。  (10)Version 3.1でボタンやフィールドの検索に日本語を使わないようにしました。   Version 3.0まではCCとBCCの表示の処理に日本語を使っていました。すなわち、   「CCとBCCの表示」という名前の「ボタン」(あの文字列は実はボタンです)を   探し、存在するときにはそれを押していました。このため確実に英語版では動作   しませんでした。Version3.1では、入力フィールドが2個しかない場合に、入力   フィールドの右にあるボタンを探して押すようにしましたので、英語版でも動作   します。一応、Windows Liveメール2011をInstaller\LangSelector.exeで英語版   に変更して動作を確認済みです。  (11)Version3.1のテスト中にときどき配列外参照エラーが発生するので調べたとこ   ろ、メールの画面がWLBccの処理中に閉じられた場合の配慮が無いことに気付きま   した。広い範囲で例外を捕らえるようにし、やや大掛かりな改造を行いました。   Version 3.0までは上手くすり抜けていたようです。  (12)Version3.1でオプション「アカウント読み込み時のエラーメッセージを表示し   ない」をサポートしました。標準ではファイル名を含めてエラーメッセージを表   示し、処理を続行するようにしました。私の確認した範囲では、空のアカウント   ファイルがあっても無視できます。  (13)メールの作成画面ごとに自動入力を1回だけにするため、ウィンドウハンドルを   10個まで記憶しています。このため一時点に11画面以上を表示すると、古い画面   を新しく現れたものとみなし、自動入力します。 ●サポート  プログラムの最新版は本ドキュメント末尾のURL内にあります。  不具合等については本ドキュメント末尾の宛先にメール頂ければできるだけ対処  します。 ●免責  本プログラムの使用により生じた損害に関して作者に責任はないものとします。 ●転載  本プログラムの転載等は自由ですがメールにて連絡をお願い致します。 ●謝辞  nobukichiさん作成の簡単インストーラを使わせて頂いています。  http://www5a.biglobe.ne.jp/~nobukich/index_j.htm  jzx100tsさんに差出人を選択中の場合の操作性について指摘を頂きました。  百田さんに返信時のカーソル位置について指摘を頂きました。  松原さんに64ビットWindowsで動作不可の指摘を頂きました。  脇坂さんに日本語に依存しない改造の動機付けを頂きました。  itsgさんにアカウントエラーを無視するオプションのヒントを頂きました。  windows7素人さんにファイル添付時の不具合の指摘を頂きました。  ありがとうございます。 ●改訂歴  バージョン番号は通知領域の右クリックメニューから確認できます。  Version 3.2(2012/5/8)(2013/5/7) ファイルを添付すると先頭のアカウントを選択してしまう不具合の修正   Windows8でインストールできなかったのを修正(プログラムは変更無し)  Version 3.1(2012/3/17) ボタンやフィールドの検索に日本語を使わないようにした。また、アカウント   読み込みエラーを非表示にするオプションを付けた。  Version 3.0(2011/3/3) CCの自動入力をサポートした。  Version 2.3(2011/1/22)   64ビットWindowsで動かなくなってしまったのを対策した。  Version 2.2(2010/12/30)   メール本文にカーソルがある場合BCC入力後に戻すようにした。  Version 2.1(2010/7/17)   差出人の選択中にドロップダウンリストが閉じてしまうことがあったのを改善  Version 2.0(2010/6/26)   Windows Liveメール2010に対応  Version 1.6(2010/1/10)   設定ファイルのTimerIntervalエントリが作られない、設定画面を出すとカウン   タが不正になる不具合を修正  Version 1.5(2009/11/29)   送信メールウィンドウの検知をタイマによるループとFindWindowに戻した。  Version 1.0(2009/11/15)   WMBccをベースにVisual C#, UI Automationを使って作成 ===================================== Copyright(C)2009,2013 A.Shimada(島田明雄) URL http://www.mars.dti.ne.jp/~a-smd/ E-Mail akio_dot_shimada@nifty.ne.jp(spam対策) SHIMAPEE(しまぴー) =====================================