こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

OEで特定フォルダの新着メールを知らせるスクリプト

お世話になっています。

Outlook Expressで事前に指定した特定のフォルダに
新着メールが届いたときに、
それを知らせる機能があればいいと思ったんですが
社内規定によりフリーソフトが使用できない為、
WSH(vbs)でスクリプトを組もうとしています。

当初は特定したいフォルダのdbxファイルのサイズを
時間を空けて比較することで 「新着あり」のメッセージ(MsgBox)を
表示させるように組んだんですが、それだと
タイトルのみのちょっとしたメールを感知しませんでした。
(dbxファイルのサイズが変化しない為)

そこで今度はdbxファイルの最終更新日(最終アクセス日時)で
比較するように組んだんですが、そうすると
Outlook Express上でフォルダをクリックするだけ
(正確にはそのフォルダから違うフォルダをクリックした時)でも
最終更新日が更新され、「新着あり」とメッセージが表示されてしまいます。

ネットで検索してもなかなかいい方法が見つからずに困っています。
他に何かいい方法はありますでしょうか?
ご教授いただけましたら幸いです。

投稿日時 - 2010-12-19 21:13:04

QNo.6395016

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

回答No.1のスクリプトの変更です。4バイトを1回でReadするようにしました。

なお、DBXファイルのサイズによっては時間がかかりますのでご注意を。

-----
' DBXファイル内のメッセージ数を表示するWSH(VBS)
Const POS = 196 'DBXファイル内のメッセージ数の位置
FileName = WScript.Arguments(0) 'ドロップしたDBXファイルを処理
Set Stm = CreateObject("ADODB.Stream")
Stm.Type = 1
Stm.Open
Stm.LoadFromFile FileName
Stm.Position = POS
Buffer = Stm.Read(4)
Stm.Close
Set Stm = Nothing

C1 = AscB(MidB(Buffer,4,1))
C2 = AscB(MidB(Buffer,3,1))
C3 = AscB(MidB(Buffer,2,1))
C4 = AscB(MidB(Buffer,1,1))

Count = C1*2^24 + C2*2^16 + C3*2^8 + C4

WScript.Echo Count
-----

投稿日時 - 2010-12-23 19:52:50

お礼

ありがとうございます。ほんとにSHIMAPEEさんはお詳しいですね。参考にさせていただきます。

投稿日時 - 2010-12-26 02:34:47

ANo.1

一つのアイデアですが、WSH(VBS)でDBXファイル中のメッセージ数を参照してはどうでしょうか。

ただし問題があって、OEがDBXを開いているとエラーになります。たぶんその逆も。

WindowsXP Pro SP3 で試しました。

-----
' DBXファイル内のメッセージ数を表示するWSH(VBS)
Const POS = 196 'DBXファイル内のメッセージ数の位置
Dim Buffer(4)
FileName = WScript.Arguments(0) 'ドロップしたDBXファイルを処理
With CreateObject("ADODB.Stream")
.Type = 1
.Open
.LoadFromFile FileName
.Position = POS
For ix = 1 To 4
Buffer(ix) = .Read(1)
Next
.Close
End With

C1 = AscB(Buffer(4))
C2 = AscB(Buffer(3))
C3 = AscB(Buffer(2))
C4 = AscB(Buffer(1))

Count = C1*2^24 + C2*2^16 + C3*2^8 + C4

WScript.Echo Count
-----

参考URL:http://oedbx.aroh.de/index.html

投稿日時 - 2010-12-23 03:25:31

お礼

丁寧なお返事をありがとうございます。ただやっぱりファイルの中を読み込むのに時間がかかっちゃいますね。その間CPU使用率もあがっちゃうんで少し難しいかな、と。すいません。

投稿日時 - 2010-12-26 02:29:28

あなたにオススメの質問