添付ファイルの並び順についてNo.41864
oshimas さん 11/11/24 11:56
 
お世話になります。
添付ファイルのアイコンが下の方に表示されますが、
これの並び順を、ファイル名の順にしたいです。
よろしくお願いします。

[ ]
RE:41864 添付ファイルの並び順についてNo.41865
Iranoan さん 11/11/24 12:30
 
 oshimas さん今日は、一ユーザの Iranoan です。
> 添付ファイルのアイコンが下の方に表示されますが、
> これの並び順を、ファイル名の順にしたいです。
 受信したメールだとまた違いますが、次のはどうでしょう
http://hidemaruo.dip.jp:81/hidesoft/hidesoft_8/x10495.html#10508

[ ]
RE:41865 添付ファイルの並び順についてNo.41866
oshimas さん 11/11/24 18:29
 
お世話になります。
サンプル提示ありがとうございます。
送信メールの編集の例のようですが、X-Attach:というヘッダを
並び替えればいいということは分かりました。
受信したメールのAttach:ヘッダを編集したら思い通りになりました。
できたら受信時に自動でやりたいです。
いい方法はないでしょうか。

[ ]
RE:41866 添付ファイルの並び順についてNo.41867
秀まるお2 さん 11/11/25 09:29
 
 受信したメール1通1通に対してマクロで改変の処理をさせることは可能です
が、その場合、受信中に1通1通処理させるんじゃなくて、受信が一段落した後
にまとめてマクロで処理する形になります。

 なので、受信が終わったタイミングでマクロがループして、1通1通選択しな
がら改変+保存してって動作が画面上で実行される形になります。けっこう画面
上でばたばたします。

 受信したメールについて自動で処理するようなお仕事用ってことならそれでも
いいかと思いますが、なんとなく添付ファイルの並び順が気に入らないって程度
でそこまでするのはデメリットの方が大きいと思います。

 受信が一段落した時用ってことで、マクロのサンプルを提示することは可能で
す。

 あるいは、受信したメールの中でも特定のフォルダに振り分けられたメールに
限って処理したいってことなら、そっちの方が画面のばたばた度合いは小さくな
ります。そういうマクロの例も提示可能です。

[ ]
RE:41867 添付ファイルの並び順についてNo.41868
oshimas さん 11/11/25 12:58
 
昔は添付ファイルの順番なんて気にもしなかったのですが、
HTMLメールViewerを使うようになって、JPEGやTIFFの画像がインライン
表示されるようになってから、添付ファイルの順番が気になるようになりました。
毎度たくさんの添付ファイルが付いてくるわけではないので、
メールを選択して、選択したメールだけ添付ファイルの順番が並び変わる、
というような感じでもありがたいのですが、いかがでしょうか。

[ ]
RE:41868 添付ファイルの並び順についてNo.41869
秀まるお2 さん 11/11/25 14:27
 
 現在選択してるメール、あるいはエディタ・ウィンドウでメールを開いてる状
態で、そのメールを改変するマクロということでしたら以下のようになります。

 HTMLメールViewerで表示中にもうまく書き換えるようにしました。



    loaddll "tkinfo.dll";
    #cAttach = 0;
    while(1) {
        $aAttach[#cAttach] = dllfuncstr("CurrentHeader2", "X-Attach"
                                       , #cAttach );
        if( $aAttach[#cAttach] == "" ) break;
        #cAttach = #cAttach + 1;
    }
    if( #cAttach == 0 ) {
        message "添付ファイルは1つもありません。";
        endmacro;
    }
    #update = 0;
    #x = 0;
    while( #x < #cAttach - 1 ) {
        #y = #x + 1;
        while( #y < #cAttach ) {
            if( $aAttach[#x] > $aAttach[#y] ) {
                $temp = $aAttach[#x];
                $aAttach[#x] = $aAttach[#y];
                $aAttach[#y] = $temp;
                #update = 1;
            }
            #y = #y + 1;
        }
        #x = #x + 1;
    }
    if( #update != 0 ) {
        #htmlview = dllfunc("IsHtmlMailViewerVisible");
        #main = dllfunc("IsHidemaruMailMain");
        #readonly = readonly;
        if( #main != 0 ) {
            #n = dllfunc("BeginEditMail");
        } else {
            if( #readonly != 0 ) {
                #n = dllfunc("EnableEdit");
                if( readonly ) {
                    readonlyswitch;
                }
            }
        }
        #x = 0;
        while( #x < #cAttach ) {
            #n = dllfunc("SetHeader2", "X-Attach:", $aAttach[#x], #x);
            #x = #x + 1;
        }
        if( #main != 0 ) {
            #n = dllfunc("SaveEditMail", 0, 0);
        } else {
            if( #readonly != 0 ) {
                #n = dllfunc("AlterSave");
                if( ! readonly ) {
                    readonlyswitch;
                }
            }
        }
        if( #htmlview != 0 && dllfunc("IsHtmlMailViewerVisible") == 0 ) {
            #n = sendmessage( hidemaruhandle(0), 0x111, 40336, 0);
        }
    }

[ ]
RE:41869 添付ファイルの並び順についてNo.41870
oshimas さん 11/11/26 12:14
 
ありがとうございます。
添付ファイルが大変見やすくなって助かります。

添付ファイル並び替え後のメールに改変マークを付けないようにするには、
#n = dllfunc("AlterSave");
の後に、
#n = dllfunc("SetMailFlag","altered",0);
を付け足せばよろしいのでしょうか?

[ ]
RE:41870 添付ファイルの並び順についてNo.41872
秀まるお2 さん 11/11/26 16:05
 
 たしかにSetMailFlagでalteredを0にすればいいようです。

 念のために(他の人も使うかもしれないので)マクロをアップロードしなおし
させていただきます。

    loaddll "tkinfo.dll";
    #cAttach = 0;
    while(1) {
        $aAttach[#cAttach] = dllfuncstr("CurrentHeader2", "X-Attach"
                                       , #cAttach );
        if( $aAttach[#cAttach] == "" ) break;
        #cAttach = #cAttach + 1;
    }
    if( #cAttach == 0 ) {
        message "添付ファイルは1つもありません。";
        endmacro;
    }
    #update = 0;
    #x = 0;
    while( #x < #cAttach - 1 ) {
        #y = #x + 1;
        while( #y < #cAttach ) {
            if( $aAttach[#x] > $aAttach[#y] ) {
                $temp = $aAttach[#x];
                $aAttach[#x] = $aAttach[#y];
                $aAttach[#y] = $temp;
                #update = 1;
            }
            #y = #y + 1;
        }
        #x = #x + 1;
    }
    if( #update != 0 ) {
        #htmlview = dllfunc("IsHtmlMailViewerVisible");
        #main = dllfunc("IsHidemaruMailMain");
        #readonly = readonly;
        if( #main != 0 ) {
            #n = dllfunc("BeginEditMail");
        } else {
            if( #readonly != 0 ) {
                #n = dllfunc("EnableEdit");
                if( readonly ) {
                    readonlyswitch;
                }
            }
        }
        #x = 0;
        while( #x < #cAttach ) {
            #n = dllfunc("SetHeader2", "X-Attach:", $aAttach[#x], #x);
            #x = #x + 1;
        }
        if( #main != 0 ) {
            #n = dllfunc("SaveEditMail", 0, 0);
        } else {
            if( #readonly != 0 ) {
                #n = dllfunc("AlterSave");
                #n = dllfunc("SetMailFlag", "altered", 0);
                if( ! readonly ) {
                    readonlyswitch;
                }
            }
        }
        if( #htmlview != 0 && dllfunc("IsHtmlMailViewerVisible") == 0 ) {
            #n = sendmessage( hidemaruhandle(0), 0x111, 40336, 0);
        }
    }

[ ]
RE:41872 添付ファイルの並び順についてNo.41880
oshimas さん 11/11/27 21:30
 
後半部分の仕組みは私には難しいです。
ありがとうございます。

[ ]