開いているメールの残像が残るNo.10877
stone さん 04/06/30 10:34
 
以下のようなマクロをエディタ側に登録して、読んでいるメールを移動してお
ります。いつのころからか、以下のマクロを使用すると、読んでいたメールの
残像が残るようになりました。(半分消えかけたメールウインドウが残ります。
違うファイルやフォルダを開いて閉じたりして画面を書き換えてやれば消えま
すが)以下のマクロを修正するなりして、対処することは出来るでしょうか。

OS:Windwos 98SE
Version:鶴亀メール V3.58


         loaddll "tkinfo.dll";
         if( !result ) {
         message "DLLロードに失敗";
         endmacro;
         }

     if( dllfunc( "IsTransmitting" ) ) {
     message "送受信中です。";
     endmacro;
     }
         
     //鶴亀本体側で開いているメールを選択
     #n = dllfunc( "Sync" );
     
     //鶴亀本体側に移動
     #n = dllfunc( "SetMainWndTop" );

     //鶴亀本体側の描画を禁止
     #n = dllfunc("DisableDraw");
     
     //メールをPendingフォルダに移動
     #n = dllfunc( "Move", "", "受信\\★Pending" );
     
     message "Pendingフォルダに移動しました!";
         
     //現在のアカウントの受信フォルダに戻る
     #n = dllfunc( "SelectFolder", "", "受信" );
     
     //次の未読メールを選択
     #n = dllfunc( "NextUnread" );

     //鶴亀本体側の描画を戻す
     #n = dllfunc("EnableDraw");
     
     //メールをエディタで開く
     #n = dllfunc( "OpenMail" );
     

--
stone

[ ]
RE:10877 開いているメールの残像が残るNo.10879
Iranoan さん 04/06/30 13:05
 
 stone さん今日は、Iranoan です。
> 以下のマクロを使用すると、読んでいたメールの
> 残像が残るようになりました。
 どうやら
>      #n = dllfunc( "Move", "", "受信\\★Pending" );
の時にウィンドウが閉じられないのが原因のようですね。取り敢えず、
closehidemaruforced 文を使えば、回避できます。

[ ]
RE:10877 開いているメールの残像が残るNo.10880
秀まるお さん 04/06/30 14:39
 
 だいぶ前(たしか1ヶ月か2ヶ月前)に、マクロ実行中のスレッド間同期関係
の処理を変更して、いろいろレベルダウンが起きつつも安定したと思っていた所
だったんですが、今回の件は、まさしくそのスレッド間同期関係の所で固まって
ました。

 直すのが難しいとは思いますが、なんとか修正させていただきます。

[ ]
RE:10879 開いているメールの残像が残るNo.10881
stone さん 04/06/30 15:26
 
お世話になります。

] closehidemaruforced 文を使えば、回避できます。

具体的にどのよう書けばいいのでしょう。
ヘルプをみたのですがよくわかりませんでした。

なおしていただけそうなので、それまで待てばよいのかもしれませんが、試し
てみたかったもので。

--
stone

[ ]
RE:10880 開いているメールの残像が残るNo.10882
stone さん 04/06/30 15:26
 

お世話になります。

]  直すのが難しいとは思いますが、なんとか修正させていただきます。

宜しくお願いします。

--
stone

[ ]
RE:10881 開いているメールの残像が残るNo.10883
秀まるお さん 04/06/30 15:49
 
 もうすぐV3.61をアップロードするので、それまでお待ちください。

[ ]
RE:10881 開いているメールの残像が残るNo.10885
Iranoan さん 04/06/30 17:07
 
 stone さん今日は、Iranoan です。
> ] closehidemaruforced 文を使えば、回避できます。
>
> 具体的にどのよう書けばいいのでしょう。
 すいません。秀丸のマクロ・ヘルプも持っていらっしゃるかと思っていまし
た。Ver.3.61 で解決すると思いますが、
>      //鶴亀本体側で開いているメールを選択
>      #n = dllfunc( "Sync" );
>
>      //鶴亀本体側に移動
>      #n = dllfunc( "SetMainWndTop" );
>
>      //鶴亀本体側の描画を禁止
>      #n = dllfunc("DisableDraw");
>
>      //メールをPendingフォルダに移動
>      #n = dllfunc( "Move", "", "受信\\★Pending" );

  #edit = hidemaruhandle( 0 );
  #n = dllfunc( "Sync" );
  #n = dllfunc( "SetMainWndTop" );
  #n = dllfunc("DisableDraw");
  closehidemaruforced #edit;
  #n = dllfunc( "Move", "", "受信\\★Pending" );
というように、移動前にウィンドウを閉じておきます。

[ ]
RE:10885 開いているメールの残像が残るNo.10886
stone さん 04/06/30 17:20
 

]  すいません。秀丸のマクロ・ヘルプも持っていらっしゃるかと思っていまし
] た。Ver.3.61 で解決すると思いますが、

いや、持っているのですが、私の頭では、

]   #edit = hidemaruhandle( 0 );

この部分の書き方がよく理解できなかったんです。

教えていただいた通りにしたところ、きれいに動きました。鶴亀の問題でも
あったようですが、私自身のしたかったことは、まさにこれでしたので、
すっきりしました。ありがとうございました。

実際には、修正したバージョンがまもなくリリースされるようですので
それを待つことにします。

--
stone

[ ]