投稿時間:2006/12/18(Mon) 14:06 投稿者名:naruharu
Eメール:
URL :
タイトル:MAPISession、MAPIMessagesについて
2回目の投稿になります。
MAPISessionとMAPIMessagesを使って、メール内容を表示する簡単なプログラムを組み ました(下記)。
Timerを使って30秒ごとに新着メールを確認し、メールの本文をテキストボックスに表 示するものです。実行後しばらくは問題ないのですが、2日ぐらい(メール確認回数 6000回くらい?)経過すると、使用しているPCのデスクトップ表示がおかしくなり ます。
具体的には、新着メール確認ごとに、最下部に表示されているWindowsのタスクバーが 最上部にも出現したり、別に走っているソフトが本来の画面位置と別の場所にも2重に 表示されたり、次には消えたり・・・とにかくグラフィックがおかしくなってしまいます。
これを放っておくと最終的にはMAPIMessages1.Fetchの”予期しないエラー”で止まって しまいますが、上記症状との関連は明らかではありません。
MAPISessionとMAPIMessagesとしては標準的な使い方だと思いますが、なぜこのようなこ とが起こるのかわかりません。OSはWindowsXP(Pro, HomeEdition)、メールアカウントの 設定はOutlookExpressで行っています。3台の異なるPCでテストしましたが、いずれも 同じ症状が発生しました。
よろしくお願いいたします。
Private Sub Form_Load() Timer1.Interval = 30 * 1000 (メール確認間隔=30秒) End Sub
Private Sub Timer1_Timer()
Dim i As Integer Dim n As Integer Dim adr As String '受信メールのアドレス Dim msb As String '受信メールの件名 Dim msg As String '受信メールの本文 Dim nmsg As Integer
'メール受信処理 MAPISession1.UserName = "*******" MAPISession1.Password = "*******" MAPISession1.SignOn MAPIMessages1.SessionID = MAPISession1.SessionID
MAPIMessages1.FetchMsgType = "" MAPIMessages1.FetchSorted = True MAPIMessages1.FetchUnreadOnly = True '未読メールのみ受信 MAPIMessages1.Fetch n = 0 For i = 0 To MAPIMessages1.MsgCount - 1 MAPIMessages1.MsgIndex = i adr = MAPIMessages1.MsgOrigAddress msb = MAPIMessages1.MsgSubject msg = MAPIMessages1.MsgNoteText
Text1.Text = adr & vbCrLf & msb Next i '次メールへ If MAPIMessages1.MsgCount > 0 Then MAPIMessages1.Delete '処理したメールを削除(ゴミ箱へ移動) End If MAPISession1.SignOff End Sub
|