2ペイン メール表示で単一/複数画面設定No.06179
tad.nktk さん 20/01/17 13:38
 
 秀丸メールを2ペインレイアウトで使い始めました.
 受信済メールを並び順でなく読み続けると,メール表示画面がたくさん残ります.
メール表示画面がたくさん残ると画面操作が鬱陶しくなるのと,多くのウィンドウを
閉じる手間が発生します.
 以前に使っていたメーラでは,すべて同じ画面に表示するスペックになっていて,
複数メールを並べて表示したい時は,片方を秀丸エディタにコピーペーストしておき,
別のメールを開く形で対応していました.
 秀丸メールにも,「全般的設定−メール表示:詳細(その他)」で『閲覧用のメールエ
ディタは複数起動しない』設定があって,旧メーラと同様の動作にできることは,
分かりました.
 しかしついでに,通常は単一画面にメール表示をしつつ,特定のメールについては
別の独立画面に表示する機能があるとか,(上記の)メールエディタの複数起動を許可/
不許可にする設定を簡単な操作で実現できると,快適だと思いました.
 そのような手立ては,備わっていないでしょうか?

[ ]
RE:06179 2ペイン メール表示で単一/複数No.06181
秀まるお2 さん 20/01/17 17:42
 
 現状ではそういう機能は無いのですけども、

>  以前に使っていたメーラでは,すべて同じ画面に表示するスペックになっていて,
> 複数メールを並べて表示したい時は,片方を秀丸エディタにコピーペーストしてお
>き,
> 別のメールを開く形で対応していました.

 そういう作戦を秀丸メール上で実行することは可能ではありまして、それをマクロ
を使って一発で実行するってことも可能ではあります。

 マクロの例としては、例えば以下のようになります。

------------------------------------------------------------
    loaddll "tkinfo.dll";
    #headerview = dllfunc("HeaderView");
    gofileend;
    beginsel;
    if( #headerview == 0 ) {
        gofiletop;
    } else {
        moveto 0, -9999;
    }
    copy;
    #n = dllfunc("NewMail");
    #n = dllfunc("SwitchHeaderView", #headerview);
    if( #headerview == 0 ) {
        gofiletop;
    } else {
        moveto 0, -9999;
    }
    beginsel;
    gofileend;
    delete;
    paste;
    gofiletop;
    #n = dllfunc("SetHeaderUnited", "To", "\"!!!dontsend!!!" + dllfuncstr("C
urrentHeaderUnited","To") + "\" <xxxx@hoge.hoge>");
    $cc = dllfuncstr("CurrentHeaderUnited", "Cc");
    if( $cc != "" ) {
        #n = dllfunc("SetHeaderUnited", "Cc", "\"!!!dontsend!!!" + $cc + "\"
 <xxxx@hoge.hoge>");
    }
    clearupdated;
------------------------------------------------------------

 こんな作戦でどうしょうか。


---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:06181 2ペイン メール表示で単一/複数No.06183
tad.nktk さん 20/01/18 12:03
 
早速のご教示有難うございます.
マクロの使用には手を出していなかったので,すぐに全体を理解とは行きませんが,
ご提示のコードをコピーペーストして AnotherView.mac というマクロを作成してみ
ました.
 その動作から想定して,
1) (単一画面の)メール表示画面で マクロを実行すると,新規メール相当の別画面が
開いて,そこに元メールのコピーが (ヘッダー情報相当の位置に) 表示されるので,
2) 別メールを表示させる操作を行うと,はじめの表示画面だけは,別メールの内容
が表示され,この画面と 1) で開いた別画面 とを対比して閲覧できる
と理解しました.
 しかし,ご提示のコードを実行すると,別画面に表示されるのが元メール内容では
なく,AnotherView.mac ファイルそのものになってしまいました.
 別画面に表示すべきデータ(ファイル)を指定する部分が欠落または違っているので
はないかと考えましたが,使い方の方が間違っているのでしょうか?(マクロの全体
像を理解しないままでの質問恐縮ですが...)

[ ]
RE:06183 2ペイン メール表示で単一/複数No.06185
tad.nktk さん 20/01/18 19:39
 
自己フォローです.
 秀丸エディタマクロヘルプで,"gofileend" の説明が見あたらないと思ったら,秀
丸エディタのバージョンが古かった(多分8.62だった)ためと見られます.
 秀丸エディタを更新したら,メール表示画面で範囲指定して,マクロを実行すると,
指定範囲の内容を本文とする新規メール画面が,別画面として表示できました.
 あとの好みの形式に応じた作りこみは,少しマクロを勉強させていただきながら,
試行しようと思います.
 有難うございました.


[ ]
RE:06185 2ペイン メール表示で単一/複数No.06187
tad.nktk さん 20/01/19 23:56
 
再度の自己フォローです.
 前記のように動作することもあるという程度で,そのマクロの実行が安定した動作
にはなりませんでした.
 結局のところ,元のメール表示画面が通常の 閲覧モード になっていると,メール
textが全く渡されず,かわりに関係ないメールのtextや,編集バッファの内容などが
入ってくるようです.但し,このマクロを実行すると,その結果はともかく,マクロ
を実行した元画面は 閲覧モード が解かれ,マウスカーソルが見える状態になるので,
もう一度同じマクロ実行すると今度は正常な結果が得られます.
 要は,前出のマクロは 閲覧モード になっている場合に対応するようになっていな
いだけのようです.
 閲覧モードを ON/OFF するマクロは無さそうですが,メニューにある「設定−編集
を許可する」の ON/OFF を,裏技機能で使うことにして,
  "#n = sendmessage( hidemaruhandle(0), 0x0111, 40083, 0);"
の行を,元マクロコードで,先頭の "loaddll "tkinfo.dll";" の直後と
10行目 "copy;" の直後 に挿入しました.
(先頭のものは if(browsemode == 1) の条件付にするのがよいでしょう.)

 その結果,希望の動作が行えるようになりました.あとは,マクロ実行用のボタン
をメール表示画面に設置します.

 ついでに,私固有の設定としては,コピーしたメールは新規メールの形をしている
ものの,そのままメール発信には決して使わないので,簡素化して,下記のコードで
処理しようと考えています.

--------------------(マクロ)--------------------
  loaddll "tkinfo.dll";
  if (browsemode == 1) #n = sendmessage( hidemaruhandle(0), 0x0111, 40083, 0);
  #headerview = dllfunc("HeaderView");
  gofileend;  beginsel;  moveto 0, -9999;  copy;
  #n = sendmessage( hidemaruhandle(0), 0x0111, 40083, 0);
  #n = dllfunc("NewMail");
  #n = dllfunc("SwitchHeaderView", 0);
  moveto 0, -9999;  beginsel;  gofileend;  delete;
  #n = dllfunc("SetHeaderUnited", "From", "");
  #n = dllfunc("SetHeaderUnited", "To", "");
  #n = dllfunc("SetHeaderUnited", "Cc", "");
  gofiletop;  paste;  gofiletop;  clearupdated;
------------------------------------------------


[ ]
RE:06187 2ペイン メール表示で単一/複数No.06191
秀まるお2 さん 20/01/20 09:26
 
 すみません。閲覧モード(文字カーソル表示OFF)のことを考えてませんでした。

    #n = sendmessage( hidemaruhandle(0), 0x0111, 40083, 0);

 の処理は、単純に「browsemodeswitch」という秀丸エディタの命令でもOKです。

[ ]