 |
お世話になっております。
秀丸メールを利用した監視システムを秀丸マクロで作成しています。
【問題】同時に複数のメールを受信した場合に全く関係のない秀丸マクロ内のrunが実行されてしまう。
秀丸マクロの構成は以下の通りです。
loaddll "TKInfo.dll";
////////■■ここから_選択しているフォルダを記憶■■///////////////
#n = dllfunc("SetGrepFolderAutoInvalidate", 0);
//メールの位置取得
#index = dllfunc("MailIndex");
#listindex = -1;
if( #index < 0 ) {
#listwnd = dllfunc("TitleListWnd");
if( #listwnd != 0 ) {
#listindex = sendmessage( #listwnd, 0x019F, 0, 0 ); //LB_GETCARETINDEX
}
}
$folder = dllfuncstr("CurrentFolder");
//#n = dllfunc("SelectFolder", "", "受信");
#n = dllfunc("SelectFolder", "", $folder);
////////■■ここまで_選択しているフォルダを記憶■■///////////////
/////////////////////////////////■■ここから Aa1_01リカバリ監視■■/////////////////////////////////////////////////
//ここから Aa1_01_11_glue-driver-memory_フラグ作成///////////////////////////////////////////
#n = dllfunc("SelectFolder", "","受信\\Aa1_01_CloudWatch監視_リカバリ監視\\Aa1_01_11_glue-driver-memory\\Aa1_01_11_glue-driver-memory_alarm");
#n = 0;
#n = dllfunc("RecvMailCountInFolder");
if( #n != 0 ) {
run "C:\\TuruKameData\\xxxxxxxxxxxxxxx@namurainfo-s.com\\macro\\Aa1_CloudWatch監視_リカバリ監視\\Aa1_01_11_glue-driver-memory\\flg作成.bat";
}
///////////////////////////////////////////ここまで Aa1_01_11_glue-driver-memory_フラグ作成/////////
//ここから Aa1_01_11_glue-driver-memory_フラグ削除///////////////////////////////////////////
#n = dllfunc("SelectFolder", "","受信\\Aa1_01_CloudWatch監視_リカバリ監視\\Aa1_01_11_glue-driver-memory\\Aa1_01_11_glue-driver-memory_ok");
#n = 0;
#n = dllfunc("RecvMailCountInFolder");
if( #n != 0 ) {
run "C:\\TuruKameData\\xxxxxxxxxxxxxxx@namurainfo-s.com\\macro\\Aa1_CloudWatch監視_リカバリ監視\\Aa1_01_11_glue-driver-memory\\flg削除.bat";
}
///////////////////////////////////////////ここまで Aa1_01_11_glue-driver-memory_フラグ削除/////////
〜※上記フラグ作成、削除が15セット
/////////////////////////////////■■ここから Aa1_02_メール監視■■/////////////////////////////////////////////////
#n = dllfunc("SelectFolder", "","受信\\Aa1_02_CloudWatch監視_メール監視_音声検知フォルダ★");
#n = 0;
#n = dllfunc("RecvMailCountInFolder");
if( #n != 0 ) {
run "C:\\TuruKameData\\xxxxxxxxxxxxxxx@namurainfo-s.com\\macro\\Aa2_CloudWatch監視_メール監視_音声検知フォルダ★\\alarm.bat";
}
/////////////////////////////////■■まで Aa1_02_メール監視■■/////////////////////////////////////////////////
〜※音を鳴らす部分である上記が6セット
//メールの位置復元
if( #index >= 0 ) {
#n = dllfunc("SetMailIndex", #index);
} else if( #listindex >= 0 ) {
message str(#listindex);
#n = sendmessage( #listwnd, 0x0186, #listindex, 0 ); //LB_SETCURSEL
}
以上
メールボックスを2つ使用しています。
振り分け先やbatの文字数の多さでうまく動かないことがあります。
現在は上記複数受信時のみ別の振り分け先アラートが4〜5か所まとめてアラートが発生します。
基本的なマクロの記述におかしい場所があればご教授願います。
---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。
|
|