以前選択されていたフォルダ名(アカウンNo.10484
虎鉄 さん 22/10/23 12:09
 
-----
全般的な設定 > フォルダ > 詳細 >
□以前選択されていたフォルダをアカウント毎に覚えておく
にチェックを入れる
-----
と設定した時に、この覚えておいたフォルダ名をマクロで取得する方法はありますか?
無い場合は、機能追加のご検討をお願いできますか?

■要望理由

 現在、各アカウントの未読数を一覧表示するマクロを使用していて、
 そのマクロからアカウントの切り替えを行いたいので、次のように指定しています。

 #n = dllfunc( "SelectFolder", "MyAccount1", "" );

 この時にフォルダを指定しないといけないようなのですが、フォルダ名が分からず
 指定できません。

 また、こちら(http://htom.in.coocan.jp/macro/hm_mail.html#label-50)のサイト
 を参考に、各アカウントごとにアカウントグループを作成し、次のマクロで希望通り
 の動きはしてくれましたが、フォルダ枠内に必要ない情報が増え、今度はマウスでの
 操作がやりづらくなってしまいました。

 #n = dllfunc( "SelectAccountGroup", "MyGroup1" );
 #n = dllfunc( "NextFolder" );
 #n = dllfunc( "ExpandFolder", 1 );



秀丸メール Version 7.15 Beta 12
32bit edition

[ ]
RE:10484 以前選択されていたフォルダ名(No.10486
さん 22/10/23 17:29
 
 こんばんは。
 横からすみません。

 的外れだったら申し訳ないです。
 アカウント切り替え前に「CurrentFolder」関数で選択中のフォルダを取得してお
いて、切り替え時にそのフォルダを指定するのではだめでしょうか。
 ちょっと必要条件がうまく理解できていないかもしれないんですが、参考になれば
幸いです。

 それでは。

[ ]
RE:10486 以前選択されていたフォルダ名(No.10490
秀まるお2 さん 22/10/24 09:49
 
 アカウント毎の選択されてたフォルダは、アカウント用のフォルダ配下の「folsel.
bin」ってファイルにテキスト形式で保存されてるので、そのファイル読み込んで取
得できます。とりあえずその方法でやってほしいです。

 サンプルマクロ

    loaddll "tkinfo.dll";
    $target = "斉藤秀夫メイン";
    $home = dllfuncstr("HomeDir");
    $path = $home + $target + "\\folsel.bin";
    message $path;
    $s = dllfuncstr("LoadStringFromFile", $path);
    message $s;
    if( $s == "" ) {
        $folder = "受信";
    } else {
        #x = strstr( $s, "\\" );
        if( #x <= 0 ) {
            $folder = "受信";
        } else {
            $folder = midstr( $s, #x + 1 );
        }
    }
    message $folder;
    #n = dllfunc("SelectFolder", $target, $folder);

 folsel.binファイルは普通はShift-JISエンコードですが、フォルダ名やアカウン
ト名ににコード文字が含まれてる場合はUTF-16,BOMありになります。

[ ]
RE:10490 以前選択されていたフォルダ名(No.10497
虎鉄 さん 22/10/24 21:03
 
ご提示いただいたサンプルマクロで希望の動作ができました。
ありがとうございました。

[ ]
RE:10486 以前選択されていたフォルダ名(No.10498
虎鉄 さん 22/10/24 21:09
 
ご意見ありがとうございます。

秀まるお2様からご提案いただいた方法でうまく動作しました。

ちなみに、自分も「CurrentFolder」関数を使用してやって見ようと思ったのですが、
結局自分でフォルダの記憶を管理しないといけなくなるので、今回質問してみた感じ
です。

[ ]