投稿日 | : 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