返信メールでカーソルが勝手に動くNo.10179
hirn さん 22/09/02 23:47
 
 HTMLメール編集アドイン V1.60 & マクロ自動起動:送信用のエディタ起動時に
マクロ登録済みです。


 返信メール起動>マクロ動作して終了>カーソルが勝手に最後まで動く(検索して
いるような動作?)
という現象が発生するようになりました。

 自動起動マクロではメール内容を書き換え & HTMLメール編集をON しているので、
> HTMLメール編集をON/OFF切り替えしてもカーソル位置を可能な限りキープするよう
>にした。
この機能が悪さしている気がします。


 ご確認をお願いします。

[ ]
RE:10179 返信メールでカーソルが勝手に動No.10183
秀まるお2 さん 22/09/05 09:29
 
 HTMLメール編集がONになるとカーソルが勝手に動くのは、一応あえてやってること
なのですが、マクロの自動起動とHTMLメール編集の両方が重なった場合は、一応、自
動起動されたマクロが終了してからカーソル移動するはずで、マクロの動作には影響
しないようにはなってるはずだと思います。

 たとえば

   message "テスト";

 みたいなマクロを自動起動に登録しておきつつ、HTML形式で返信するようなテンプ
レートで返信すると、「テスト」のメッセージにOKした後にカーソルが移動します。

 例えばテンプレートで「$c」を指定していれば、その「$c」で指定された位置に
カーソル移動すると思いますが、もしもマクロでカーソル移動してたとしたら、その
移動した位置の、HTML形式での同じ位置にカーソル移動しようとします。(必ず正確
なその位置になる保証はありませんが)

 何かその辺で具体的にどういう現象が起きてしまうのかか教えて欲しいです。出来
れば具体的にどんなマクロでどうなる、みたいな例も含めて教えてほしいです。

----------------------------
 とりあえずの回避策も念のため連絡させていただきますと、マクロの最後に「gofi
letop;」を入れてカーソルをメール本文の先頭に移動してからマクロ終了すれば、た
ぶんカーソルの勝手な移動はしなくなります。

----------------------------
 もし問題が回避困難だとしたら、とりあえずHTMLメール編集アドインの設定に
「カーソル位置の同期化はしない」みたいなオプションを追加して回避策とさせてい
ただく手もあるかなぁと思います。

[ ]
RE:10183 返信メールでカーソルが勝手に動No.10240
hirn さん 22/09/08 22:33
 
 ご確認、ありがとうございます。

 マクロは本文を書き換えていて、検索しても見つからない?のでカーソルが最後ま
で移動してエラー音が鳴ります。
カーソルが最後まで移動するのに、5秒くらいかかっています。

 マクロの動作には影響ありません。

[ ]
RE:10240 返信メールでカーソルが勝手に動No.10244
秀まるお2 さん 22/09/09 09:25
 
 カーソルが移動するのに時間がかかって5秒以上固まるのはちょっとまずいので、
とりあえず、カーソル移動の回数がある程度以上大きい場合は移動しないようにして
しまうことにします。

 カーソル移動量(右方向の移動量)の最大で100文字分くらいで区切ってしまうこ
とにします。次の秀丸メールV7.15β5にてそのように修正してみます。

 将来的にはHTMLメール編集アドイン側にカーソル位置をキープするかどうかの設定
を追加しようかなぁと思います。

[ ]
RE:10244 返信メールでカーソルが勝手に動No.10248
秀まるお2 さん 22/09/09 10:39
 
 一応、150文字までなら移動するけどそれ以上なら一切移動しないって仕様にして
みます。

[ ]
RE:10248 返信メールでカーソルが勝手に動No.10263
hirn さん 22/09/12 21:01
 
 ご検討、ありがとうございます。

 秀丸メール(32bit) v7.14, 編集アドイン v1.60、下記マクロで再現しました。
ご参考になれば幸いです。


loaddll "TKInfo.dll";
if( dllfuncstr("RootHeader", "X-Html") != "" ){
 $s = dllfuncstr("SetHeader", "Content-Type", "text/html");

 insert "</div><hr>";
 insert dllfuncstr("QuoteHtml",
  dllfuncstr("PlainTextToHtml", dllfuncstr("CustomRootHeader", "Subject:Fro
m:To:Cc:日時:"))
  + dllfuncstr("RootHtml"));
 #n = dllfunc("ClearUpdated");
 #n = dllfunc("HtmlEdit", "on");

 gofiletop;
}

[ ]
RE:10263 返信メールでカーソルが勝手に動No.10264
秀まるお2 さん 22/09/13 09:03
 
 ちなみにこの件は先日アップロードしたVersion 7.15β5にて対応してるので、も
し良かったらそれで試してみてほしいです。

 マクロを直すとしたら、

  #n = dllfunc("HtmlEdit", "on");

 の前に「gofiletop;」を入れればいいかと思います。それでカーソル移動しなくな
るはずです。

[ ]