[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間: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