HTMLメールViewerで表示中に「全てのアカNo.04848
xxxK2manxxx さん 19/03/12 08:36
 
こんにちは!
「HTMLメールViewerを使う」設定にして
HTML表示中にマクロライブラリにある、
「全てのアカウントを巡回して全て既読」を実行すると
HTML表示していたメールがテキスト表示に戻ります。
その状態で再度、該当メールを一覧からをクリックすると、
HTML表示に戻ります。

マクロ制作者殿に報告するか迷いましたが、
マクロも秀丸メールのDLLを使用しているようなので
こちらへ投稿しました。

よろしくお願いいたします。

[ ]
RE:04848 HTMLメールViewerで表示中に「全No.04850
秀まるお2 さん 19/03/12 10:04
 
 HTMLメールのインライン表示がOFFになってしまう理由ですが、HTMLメールViewer
の存在によってマクロが誤動作することを防ぐ用に、マクロ側で特別な配慮をしてな
い限り、マクロ実行のタイミングでHTMLメールViewerが勝手にOFFになることが多いで。

 (具体的には、マクロの中でメール表示の切り替えが発生するとOFFになる)

 解決策は、マクロを直すしか無いです。で、今ちょっと僕の方で手直ししてみまし
た。

 以下のマクロだと大丈夫なはずということで、お願いします。「SetHtmlMailAutoI
nlineView」って関数呼び出しをしています。

---------------------- All_Unread.mac 手直し版 ----------------------
// アカウントを順番に切り替えすべて既読にする Ver 1.01    by TAMA
// --詳しくは添付のテキストファイルをお読み下さい--

loaddll "tkinfo.dll";
$account = dllfuncstr("CurrentAccount");    // 現在のアカウント名を取得
if ($account == "") { endmacro; }   // アカウント名を返さなかった場合は終了

#n = 0;
while (1) {
    // n 番目のアカウントのアカウント名を取得
    $l[#n] = dllfuncstr("Account", #n);
    // 返り値が現在のアカウントだった場合、それが何番目かを記憶
    if ($l[#n] == $account) { #current = #n; }
    // 返り値が無しの場合、最後のアカウントが何番目かを計算し、ループから抜ける
    else if ($l[#n] == "") { #last = #n - 1;  break; }
    // カウントアップ
    #n = #n + 1;
}

if (iskeydown(0x10)) {// Shift キーを押している場合、巡回してすべて既読。
#z = 0;
while((#last + 1) - #z){
    //メッセージは非表示
    #n = dllfunc("SetAutoPushTimer", 0, "yes");
    #n = dllfunc("SelectFolder", dllfuncstr("Account",#z), "");
    #n = dllfunc("ClearAllUnread");
    #z = #z + 1;
    }
    #n = dllfunc("SetHtmlMailAutoInlineView", 1);               // by 秀まるお
    #n = dllfunc("SelectFolder", dllfuncstr("Account",#current), "受信");
} else { // Shift キーを押していない場合、カレントアカウントのみすべて既読
    //メッセージは非表示
    #n = dllfunc("SetAutoPushTimer", 0, "yes");
    #n = dllfunc("SelectFolder", dllfuncstr("Account",#current), "");
    #n = dllfunc("ClearAllUnread");
    #n = dllfunc("SetHtmlMailAutoInlineView", 1);               // by 秀まるお
    #n = dllfunc("SelectFolder", $account[#current], "受信");
}


endmacro;

[ ]
RE:04850 HTMLメールViewerで表示中に「全No.04851
xxxK2manxxx さん 19/03/12 17:52
 
ありがとうございます。
インライン表示になりましたが。。。。

自分はWindows10の設定で既定のボタンへマウスを移動としています。

このマクロはツールバーに登録してあり、それを実行すると、一瞬
(分からないくらい。。スマホで動画撮影しスロー再生でやっと内容が判明しました)

「アカウント内のすべてのメールを既読にしてもいいですか?」

のメッセージボックスがでて何もクリックしていないのに

「はい」をクリックしたことになりマクロが実行されます。

なのでマウスが「はい」の位置へ勝手に移動して、

「おや?」となります。

メッセージボックスが表示されるのは仕様ですか?
仕様なら表示させない方法はありますか?

また、クリックしていないのに「はい」が選択されるのはバグっぽい
ですが仕様ですか?

ご確認願います。

[ ]
RE:04851 HTMLメールViewerで表示中に「全No.04852
秀まるお2 さん 19/03/12 18:12
 
 このマクロは、アカウントを選択した状態でClearAllUnreadって関数呼び出しして
アカウント配下のメールをすべて既読にしてるんですが、そのClearAllUnread呼び出
しの時に、確認メッセージがどうしても出てしまいます。

 その確認メッセージを出さなくすることが出来ないために、「自動ではいを押す」
ってことをやることによって、見かけ上、メッセージが無いような感じで動くように
してるようです。

 マクロの力では解決は無理なので、しいて、メッセージ表示せずにすべて既読にす
ることが出来るように、ClearAllUnread関数にそれ用のパラメータを追加してみよう
と思います。

 次の秀丸メールのβ版(V6.90β13)を使っていただく前提になりますけども。

 V6.90β13をアップロード出来たら、その新しいパラメータを使う用のマクロを掲
載させていただきます。少々お待ちください。

[ ]
RE:04852 HTMLメールViewerで表示中に「全No.04853
秀まるお2 さん 19/03/12 18:39
 
 ClearAllUnread関数にパラメータを追加しなくても、設定で対応できました。

 「設定 - 全般的な設定...」の
 「上級者向け - 確認メッセージ」

 のページの中に、

  □ 「すべて既読にする」を実行する時
  □ 「すべて既読にする - 配下のフォルダも含めて」を実行する時

 のオプションがあります。両方OFFにすれば問い合わせメッセージがでなくなって、
結果としてマウスカーソルが勝手に移動することも無くなります。

 それでどうでしょうか。

[ ]
RE:04853 HTMLメールViewerで表示中に「全No.04854
xxxK2manxxx さん 19/03/12 19:23
 
>
>  □ 「すべて既読にする」を実行する時
>  □ 「すべて既読にする - 配下のフォルダも含めて」を実行する時
>
> のオプションがあります。両方OFFにすれば問い合わせメッセージがでなくなって、
>結果としてマウスカーソルが勝手に移動することも無くなります。
>
> それでどうでしょうか。

だめでした。現象は変わりません。
ちなみに、もともとOFFでした。
一度、ONにして再度OFFにしても同じでした。

マクロでの実行とメニューからの実行とで処理が違っていませんかね?
マクロではこの設定は無視されるとか・・・・

※動作確認されて返信されました?
 設定の存在だけで判断していませんか?

[ ]
RE:04854 HTMLメールViewerで表示中に「全No.04856
秀まるお2 さん 19/03/12 22:03
 
 一応テストして大丈夫だったんですが、どうしたことやら?

 アカウントを選択して、アカウント名の上でマウス右ボタンメニューを表示させて、
そこの「すべて既読にする - 配下のフォルダも含めて」を実行して確認メッセージ
が出るかどうか、一回テストしてみてほしいです。僕の所ではオプションOFFで確認
メッセージはたしかに出なくなりました。

 あと、マクロは、SetAutoPushTimerが不要になります。念のため貼り付けてみます。

 どっちにしても、明日V6.90β13をアップロードしまして、それ用のマクロも後で
書き込みさせていただこうかと思います。


// アカウントを順番に切り替えすべて既読にする Ver 1.01    by TAMA
// --詳しくは添付のテキストファイルをお読み下さい--

loaddll "tkinfo.dll";
$account = dllfuncstr("CurrentAccount");    // 現在のアカウント名を取得
if ($account == "") { endmacro; }   // アカウント名を返さなかった場合は終了

#n = 0;
while (1) {
    // n 番目のアカウントのアカウント名を取得
    $l[#n] = dllfuncstr("Account", #n);
    // 返り値が現在のアカウントだった場合、それが何番目かを記憶
    if ($l[#n] == $account) { #current = #n; }
    // 返り値が無しの場合、最後のアカウントが何番目かを計算し、ループから抜ける
    else if ($l[#n] == "") { #last = #n - 1;  break; }
    // カウントアップ
    #n = #n + 1;
}

if (iskeydown(0x10)) {// Shift キーを押している場合、巡回してすべて既読。
#z = 0;
while((#last + 1) - #z){
    //メッセージは非表示
    //#n = dllfunc("SetAutoPushTimer", 0, "yes");
    #n = dllfunc("SelectFolder", dllfuncstr("Account",#z), "");
    #n = dllfunc("ClearAllUnread");
    #z = #z + 1;
    }
    #n = dllfunc("SetHtmlMailAutoInlineView", 1);
    #n = dllfunc("SelectFolder", dllfuncstr("Account",#current), "受信");
} else { // Shift キーを押していない場合、カレントアカウントのみすべて既読
    //メッセージは非表示
    //#n = dllfunc("SetAutoPushTimer", 0, "yes");
    #n = dllfunc("SelectFolder", dllfuncstr("Account",#current), "");
    #n = dllfunc("ClearAllUnread");
    #n = dllfunc("SetHtmlMailAutoInlineView", 1);
    #n = dllfunc("SelectFolder", $account[#current], "受信");
}


endmacro;

[ ]
RE:04856 HTMLメールViewerで表示中に「全No.04857
秀まるお2 さん 19/03/12 22:15
 
 あと、マクロでテストするとしたら、アカウントを選択した状態で、

    loaddll "tkinfo.dll";
    #n = dllfunc("ClearAllUnread");

 を実行して確認メッセージが出るかどうかで分かります。僕の所ではたしかに確認
メッセージは出ずに、アカウント配下のすべての未読メールが既読に切り替わりまし
た。
 (最新βでテストしてます)

 もしかして、確認メッセージは出ないけどマウスカーソルが勝手に移動するのやら?

[ ]
RE:04857 HTMLメールViewerで表示中に「全No.04859
xxxK2manxxx さん 19/03/13 00:23
 
たびたびすみません。誤記がありましたので前投稿は削除しました。

両オプションOFF時の現象です。

・未読メールがあるアカウントを右クリック−「すべて既読にする - 配下のフォル
ダも含めて」を実行
 →確認メッセージは表示されました。

・未読メールがあるアカウントを選択し、頂いたマクロを実行
 →確認メッセージは表示されました。

という結果でした。

百聞は・・・なので動画を撮影しメールしました。

また、
 loaddll "tkinfo.dll";
 #n = dllfunc("ClearAllUnread");
のみのマクロを実行しましたが、これは確認メッセージは表示されませんでした。

なにか、フラグ的な何かが影響しているのでしょうか・・・・

念のためバージョンも確認しましたが、最新でした。

よろしくお願いいたします。

※前投稿で「確認してる?」などと大変失礼な事を記入してしまい、申し訳ありませ
んでした。

[ ]
RE:04859 HTMLメールViewerで表示中に「全No.04861
さん 19/03/13 07:15
 
 こんにちは。
 横からすみません。

>・未読メールがあるアカウントを右クリック−「すべて既読にする - 配下のフォル
>ダも含めて」を実行
> →確認メッセージは表示されました。

 これですが、6.90β1で、オプションオフのときは、未読メールがあるアカウント
を右クリックして、「すべて既読にする - 配下のフォルダも含めて」を実行した際、
確認メッセージが出ないように修正されています。
 6.89やそれ以前のバージョンでは、オプションのオン/オフにかかわらず、確認メ
ッセージが表示されていました。
 そのため、ご希望の動作を実現するには、6.90のベータ版をインストールする必要
があります。

 以上、参考になれば幸いです。



[ ]
RE:04861 HTMLメールViewerで表示中に「全No.04862
xxxK2manxxx さん 19/03/13 08:00
 
> こんにちは。
> ......
>
おお!β版で修正項目になっていたのですか!
ありがとうございます。

秀まるお2氏は私がβ版を使用している前提で動作確認されていたのかな?
なるほど、動作が違ってくるわけですな。

6.90が正式版になったらインストールしたいと思います。

情報ありがとうございました。m(_ _)m

[ ]
RE:04862 HTMLメールViewerで表示中に「全No.04863
秀まるお2 さん 19/03/13 08:24
 
 陸さんわざわざ正式版とβ版両方でテストしていただきありがとうございます。た
しかに改版履歴に直したことが書いてありました。

 大変失礼しました。

[ ]