【第8回】
第3章:インターネットを利用しよう
アイコンを利用したらくらくGUI
(00/06/23)
こんにちは、nakkaです。今回はメール送信プログラムにGUIを追加します。最初にSMTPサーバーなどの設定画面を作成し、その後ショートカットを使って送信先を切り替えます。ついでにショートカットを自動的に作れるようにしましょう。
GUIの追加
前回作成したコンソールプログラムでは、起動するたびに使用するSMTPサーバーや自分のメールアドレスを入力するようになっていました。これらの情報は毎回変わるものではないので、設定を保存できると便利です。というか保存できなければ不便で使いものになりません。設定ダイアログは実行ファイルをダブルクリックすると出てきます。
メールの送信部分は前回作成したコンソールプログラムを流用しているため、通信時はロックされてしまい、画面の描画などのウィンドウメッセージを処理できないという問題があります。これはコンソールプログラムの特徴で、受信するデータを待っている間はプログラムの流れが止まってしまうために起こります。回避するには通信部分を複数のスレッドに分けたり、Windows用に拡張されたソケット通信を行うAPIを使用します。ただ、この段階では動作に大きな影響はないので、コンソールプログラムのまま進めましょう。
また、前回対応しなかった文字コードも今回は対応させました。本文中の日本語の文字コードは“RFC 1468”で規定されている ISO-2022-JP(JISコード)で送信するようになっています。ヘッダ内の日本語は“RFC 2047“で規定されているB encodingでエンコードする必要があります。それだけ処理しておけば、あとは受信側のメールソフトがデコードしてくれるはずですから、安心して送信することができます。こうしてできたのが次のプログラムです。MS-DOSプロンプトで実行ファイルがあるフォルダに移動して、“mail.exe 送信先メールアドレス テキストファイル名”と入力してテストしてください。
ショートカットアイコンで相手を分ける
SMTPサーバーや自分のメールアドレスをGUIで設定したプログラムが、MS-DOSプロンプトで無事メールが送信できるようになったら、今度はメールソフトのショートカットに宛先を保存して、ショートカットで送信相手を切り替えられるようにします。そうするとショートカットにテキストファイルをドラッグ&ドロップするだけで、特定の相手にメールを送信できるようになります。まずはショートカットを手動で作成してみましょう。
ショートカットの設定方法は、デスクトップにメールプログラムのショートカットを作成したのち、ショートカットのプロパティを開いて[リンク先]の欄にプログラムの場所と送信先のメールアドレスを下記のように設定すればOKです。もっともショートカットを作成した段階でプログラムの場所は自動的に入っているので、半角スペースを開けて送信先のメールアドレスを入力するだけです。
"C:\Program Files\mail\mail.exe" test@nakka.com
|
MS-DOSプロンプトで三番目に書いたテキストファイル名は、ドラッグ&ドロップで渡すことができます。こんな簡単な設定をするだけで、デスクトップに置いてあるショートカットアイコンがアドレス帳代わりになります。
予期せぬ問題が発生
と、ここまで最初に計画したとおりにプログラミングを進めて来たわけですが、想像していなかった問題が発生しました。Windows 2000では問題なく動作したものの、なんとWindows 95/98/NT 4.0ではメールアドレスとテキストファイル名という2つのオプションを渡すことができず、ドラッグ&ドロップした時点でショートカットに設定していたメールアドレスが消えてしまうのです。こればかりはWindowsの仕様に逆らうことができないので、別の方法をとることにしました。
苦肉の策として考えたのが、メールアドレスをサブフォルダ内のiniファイルに保存する方法です。作業ディレクトリをショートカットに指定する方法を試してみたのですが、これもドラッグ&ドロップしたファイルのディレクトリが作業ディレクトリになってしまうため、実行ファイル自体もコピーするようにしました。送信頻度の高い限られた人に送るためですから大丈夫ですよね。もしもっといい方法を思いついた方がいましたら、ぜひ教えてください。
ショートカットの自動作成
手動でショートカットを作った状態では、すべてのアイコンが同じになるので、どのショートカットが誰のメールアドレスなのかがわかりづらいです。そこで、ショートカットごとにアイコンを変更しましょう。アイコンの変更はショートカットのプロパティで登録することができます。私の場合、ソフトのアイコンを作るのに「VC++」に付属するアイコンエディターを使用していますが、誰でも手軽にアイコンを作成できる「Wety's Icon」などのアイコン作成ソフトを利用するといいでしょう。BMP画像やJPEG画像をそのままアイコン化してくれるので、友人の写真をとりこんでおけば、メールの送信先を間違えるなんてことはなくなります。
設定画面でショートカットまで自動作成できれば、さらに使い勝手がよくなります。手動で可能なことも自動で行えるように用意しておくと、使うときの手間を省くことができ作業の効率アップにつながります。宛先のメールアドレスとショートカット用のアイコンをダイアログに入力すると、自動的にショートカットを作成してくれる機能を付けました。ショートカットの出力先も選べるようにしていますが、通常はデスクトップに出力すればいいと思います。
これでひととおり完成です。なかなか面白いソフトにできあがったはずです。次回は通信部分の処理をよりWindowsらしく改良して、通信中にプログラムの流れが止まらないようにします。お楽しみに。
【ソフト名】Wety's Icon
【著作権者】R.C 氏
【ソフト種別】フリーソフト
【バージョン】2.80(00/03/10)
□Wety's Icon(Windows95-アミューズメント)
http://www.vector.co.jp/soft/win95/amuse/se132763.html
(nakka)