=====================================         Outlook Express BCCの自動入力プログラム             OEBcc.exe Version 3.0 ===================================== ●概要 【ソフト名】 Outlook Express BCCの自動入力プログラム OEBcc 【登 録 名】 OEBccx.EXE 【バイト数】 xxx,xxxバイト 【著作権者】 A.Shimada(島田明雄) 【対応環境】 Windows 98, 2000, XP 日本語版 + Outlook Express 6 【動作確認】 Endeavor NT7100Pro(WindowsXP Pro SP3 + Outlook Express 6) 【必要 DLL】 なし 【開発言語】 Delphi2007 【更 新 日】 2011/2/22 【種 別】 フリーソフトウェア 【サポート】 メールにて 【転載条件】 転載を希望される方は、事前に私宛にメールをください。 ●機能  Windows XP以前に標準で付いてくるメールソフトOutlook Expressはネットニュー  スも扱えますし、かなり複雑なメッセージ振り分けができるなど、そこそこの機能  があるので私は使っています。  複数のPCでメールを使うときに、サーバにメールを残す設定とし、送信メールを常  に自分宛にBCCすると各PCで受信できて便利です。このような場合にBCCを自動的に  設定できるとよいのですが、残念ながらOE(Outlook Express)にはこの機能がありま  せん。そこで、OEのメール送信画面の出現を監視し、現れたらBCCを自動的に入力す  るプログラムを作ってみました。  Windows98, 2000 Pro, XP ProとOutlook Express 6で確認しています。  Version2.0でWindowsの複数ユーザー、OEの複数ユーザーに対応しました。  Version3.0でCCの自動入力をサポートしました。 ●配布ファイル  OEBcc.EXE  プログラム本体  StartOE.js  OEとOEBccを連続して起動するスクリプト例。使用上のヒント参照  README.TXT  このファイル ●インストール  ダウンロードしたファイルOEBccx.EXEを実行して下さい。インストーラに従って処  理を進めると、標準ではProgram Filesフォルダ下にOEBccフォルダを作成し、配布  ファイルを配置します。また、スタートアップにOEBcc.exeのショートカットを作成  します。  [今すぐ実行する]をチェックして完了すると、直ちにOEBcc.exeを実行します。標準  ではSMTPアカウントのEmailアドレスがBCCアドレスになります。 ●アンインストール  通知領域のOEBccアイコンを右クリックしてメニューから終了させた後、コントロー  ルパネルのプログラムの追加と削除を使用して下さい。  OEBcc.EXEを実行したままアンインストールすると再起動を促します。  なお、削除するのはOEBcc.EXE、及びREADME.TXTのみで、設定ファイルのOEBcc.INI  は残しています。完全にアンインストールする場合はOEBccフォルダごと削除して  下さい。  Version2.0以降、OEBcc.INIは下記のフォルダ内に移動しました。完全にアンイン  ストールする場合はOEBccフォルダごと削除して下さい。  Windows2000,XPの場合 :Documents and Settings\ユーザ名\Local Settings\              Application Data\SHIMAPEE\OEBcc  Windows98の場合 :Windows\Local Settings\Application Data\SHIMAPEE\OEBcc ●アップデート  通知領域のOEBccアイコンを右クリックしてメニューから終了させた後、新しい  OEBccx.EXEを実行して下さい。アンインストールの手続きの後、インストールの手  続きとなります。  なお、OEBcc.EXEを実行したままアップデートすると、アンインストールの手続き中  に再起動を促します。  Version2.0以降で最初に起動したとき、以前のOEBcc.INIファイルの内容をできるだ  け引き継ぐようにしていますが完全ではありません。BCCアドレスの設定を確認し、  失われていた場合はすみませんが再設定して下さい。 ●使用方法  (0)通知領域のOEBccアイコンをクリックすると設定画面が出ます。   [ユーザー]   ・設定中 :設定中のユーザーです。他のユーザーを設定するときはOEで切り替え        てから再度開いて下さい。   [アドレス設定]   ・アカウント :設定するアカウントを選択します。   ・CCアドレス :標準では空白です。必要に応じて設定します。   ・BCCアドレス :標準ではSMTPアカウントのEmailアドレスが取り込まれていま           す。アドレスを変更したい、複数箇所に送りたい、空白にした           い場合などに設定します。   設定後、OKボタンを押して保存し、実行させておきます。  (1)OEのメールの作成、返信、転送画面を開くと、CC, BCCアドレスが自動的に入力   されます。なお【OEのBCCボックスが表示されていない場合は[表示]-[すべての   ヘッダー]メニューで表示させて下さい。】表示された時点で自動的に入力され   ます。   OEのアカウントが複数ある場合、OEの送信者を選択すると対応するCC, BCCアド   レスが自動的に入力されます。   自動入力はメールの作成画面が現れるごとに一度だけ行われます。すなわち手動   でCC, BCCアドレスを書き替えた場合は上書きされません。ただしOEの送信者を   選択すると上書きされます。   CC, BCCアドレスが入力済みの場合は上書きされません。これはOEの下書きフォ   ルダに保存したメールを開いたり、mailto:?bcc=BCCアドレスのショートカット   をクリックした場合を想定しているものです。ただしOEの送信者を選択すると   上書きされます。  (2)通知領域のOEBccアイコンを右クリックするとメニューが現れ、CC自動入力の   停止、CC, BCC自動入力の一時停止、バージョン情報表示、プログラム終了が   できます。 ●使用上のヒント  (1)本プログラムは数秒ごとにOEのメールの作成画面の出現を監視しています。こ   の時間間隔はOEBcc.INIファイル中のTimerIntervalでミリ秒単位に変更できま   す。500〜10000の間でお試し下さい。  (2)CC, BCCアドレスの入力はキー入力をシミュレートすることにより行っていま   す。キー入力の時間間隔をOEBcc.INIファイル中のKeyIntervalでミリ秒単位に   変更できます。0〜100の間でお試し下さい。  (3)Version3.0でCCの自動入力をサポートしましたが、機能が不要な場合は通知   領域のOEBccアイコンを右クリックし、[CC自動入力の停止]をチェックして下   さい。この設定は記憶されます。  (4)OEとOEBccを連動して起動、終了させることができます。ただし、mailtoをクリ   ックしてメールを書き始めたような場合は明示的にOEBccを起動する必要があり   ますのでご注意下さい。  ○準備   ・通知領域のOEBccアイコンを右クリックして終了して下さい。   ・スタートアップのOEBccのショートカットを削除して下さい。  ○使用方法   OE起動中にOEBccをコマンドラインパラメータ /T を指定して起動して下さい。   OEを終了させるとOEBccも終了します。   同梱のStartOE.jsは、OEとOEBccを連続して起動するWSH(Windows Script Host)   JScript例です。OEBccのインストール先を確認してお使い下さい。ダブルクリッ   クで実行できます。  ○更なるヒント   お奨めはStartOE.jsを右クリックしてショートカットを作成し、デスクトップに   置いておくことです。ダブルクリックで実行できます。更にそれを右クリックし   てプロパティからアイコンをOEのものに変更したり、ショートカットキーを割り   当てたりするとよいでしょう。   mailtoをクリックしてメールを書き始めたような場合、CC, BCCが自動入力され   ないことに気づいてから後追いで実行してもよいです。 ●注意事項  (1)メールの作成画面は一時点には1〜2個、プログラムの仕組み上は最大10個までに   するのが無難です。メールは1件ずつ作りましょう。(^_^)  (2)OEのユーザを追加、変更又は削除した場合、ログオフしてから設定して下さい。 ●プログラムの仕組みなど  (1)メールの作成画面の検知にはFindWindowを使っています。あとFindWindowExと   GetWindowRectで入力ボックスの位置関係を調べてCC, BCCボックスを決定してい   ます。とても原始的です。(^^;;;  (2)送信者ボックスのテキストの取り込みにはWM_GETTEXTを使っています。RichEdit   クラスでしたのでEM_GETTEXTRANGなども試したのですが結局簡単な方法に落ち着   きました。  (3)CC, BCCボックスが入力済みかどうかはWM_GETTEXTLENGTH>0で判断しています。  (4)キー入力シミュレートにはWM_CHARを使っています。ガバっと書き込む方法も試   したのですがOEが反応してくれませんでした。WM_CHARでOEが反応してくれたとき   はうれしかったです。(^o^)  (5)メールの作成画面ごとに自動入力を1回だけにするため、ウィンドウハンドルを   10個まで記憶しています。このため一時点に11画面以上を表示すると、古い画面   を新しく現れたものとみなし、自動入力します。  (6)INIファイルはLOCAL_APPDATAに置くことにしました。APPDATAよりもフォルダ階   層が深くなってしまいましたが仕様が新しそうなので。  (7)OEの複数ユーザーの場合、OEのメイン画面のタイトルにユーザー名が現れます。   本プログラムはそれを参照してユーザー名を判断しています。しかしemlファイル   をクリックしてメールの作成を始めた場合などはメイン画面がありません。その   場合はユーザー名をレジストリから読むのでオーバヘッドが大きくなります。  (8)メールの作成画面の検知にもっとスマートな方法が使えないかと模索。Windows   のグローバルフックWH_CBTを使って一応動くものはできたのですが、しばらく放   っておいてから試すと検知できません。あまり追求していませんが、時間が経つ   とフックが眠ってしまうようです。(^^;;; それ以前に、グローバルフックはシ   ステム全体に影響するのでデバッグ用と考えた方がよさそうです。興味深い機能   ですけれどもとても危険な香りがします。イベント毎に共有メモリを参照するオ   ーバヘッドも大きそうです。という訳でFindWindowを使い続ける事にしました。  (9)Version3.0でCCの自動入力をサポートしました。別プログラムにすることも考   えたのですが、ロジックに大きな違いはないし、ソースを別管理するのも面倒な   のでOEBccのバージョンアップで実現しました。なお、機能が不要な場合は停止   できるようにしました。 ●サポート  プログラムの最新版は本ドキュメント末尾のURL内にあります。  不具合等については本ドキュメント末尾の宛先にメール頂ければできるだけ対処  します。 ●免責  本プログラムの使用により生じた損害に関して作者に責任はないものとします。 ●転載  本プログラムの転載等は自由ですがメールにて連絡をお願い致します。 ●謝辞  nobukichiさん作成の簡単インストーラを使わせて頂いています。  http://www5a.biglobe.ne.jp/~nobukich/index_j.htm  jpさんに、OEの複数ユーザ対応のご要望を頂きました。  久保さんから、終了オプションのヒントを頂きました。  しけたさんに、CCの自動入力のご要望を頂きました。  ありがとうございます。 ●改訂歴  バージョン番号は通知領域の右クリックメニューから確認できます。  Version 3.0(2011/2/22) CCの自動入力をサポートした。  Version 2.1(2007/6/2) Outlook Expressが起動されていない場合に終了するオプションをサポートした。  Version 2.0(2007/3/24)   Windowsの複数ユーザ、OEの複数ユーザに対応した。通知領域の右クリックメニ   ューでキーが効かないことがあったのを訂正した。など  Version 1.3(2006/11/18)   シェル通知アイコン作成に失敗することがあったのを訂正した。  Version 1.2(2006/2/18)   ニュース投稿画面の対象外判定を早くした。  Version 1.1(2005/9/6)   入力済みのBCCアドレスは上書きしない。ただしOEの送信者を選択すると上書きす   るようにした。  Version 1.0(2005/9/3)   作成 ===================================== Copyright(C)2005,2011 A.Shimada(島田明雄) URL http://www.mars.dti.ne.jp/~a-smd/ E-Mail akio_dot_shimada@nifty.ne.jp(spam対策) SHIMAPEE(しまぴー) =====================================