RE:13162 古くなったメールの自動削除につNo.13185
L47B307 さん 03/06/03 20:37
 
>  13156番発言のtnobu2さんの話とも重なりますが、予定日が31日のまま進まな
> いようなフォルダがあるとしたら、それはバグってことになります。
>
>  予定日が毎日カウントダウンされていくならば、それはそれで正しい動作をし
> ているはずです。

 今確認した限りはまだ31日のままです。
 しかし、他の正常だと思われるフォルダも昨日の確認時と同じだったように思いま
す。

 この数値がカウントダウンされるタイミングはいつでしょうか?
 前回実行時と同じ時刻でしょうか? 0:00でしょうか?

 また、前回実行日時が表示されるといいかもしれません。

[ ]
RE:13185 古くなったメールの自動削除につNo.13188
秀まるお2 さん 03/06/03 23:06
 
> 今確認した限りはまだ31日のままです。

 ソースコードを見直しまして、1つ、31日のままになる原因を見つけました。

 フォルダごとの設定を開いて、そこでOKを押すと、その瞬間に自動削除のチェ
ックが行われます。なので、そうするとまた「次回のチェック予定」は31日後
に設定されなおします。

 なので、毎日「まだかなまだかな?」とフォルダプロパティを開いてはOKと操
作したら、ずっと31日のままです。

 ただし、その場合でも、ダイアログボックスをOKした瞬間に自動削除のチェッ
クが働くはずでして、それで実用上は差し支えないはずではあります。

> この数値がカウントダウンされるタイミングはいつでしょうか?

 カウントダウンという処理はありません。

 自動削除のチェックがされた時刻が、フォルダプロパティ中に8バイトで記録
されます。フォルダを選択したり、フォルダプロパティをOKしたりすると、その
瞬間の時刻と、フォルダプロパティ中の「前回のチェック時刻」に31*24時間足
した時刻を比較して、その差が>0かどうかで判断しているようです。言葉で説明
するのが面倒なので、最後にフォルダプロパティのダイアログボックスプロシジ
ャを書いておきます。

------------
 ソースコードを見ていてさらに1つ気づきました。フォルダを選択しても、そ
の瞬間に自動削除のチェックが動く訳じゃなくて、実際にはその0.3秒後です。
なので、フォルダをマウスでクリックして素早く(0.3秒以内に)ほかのフォル
ダを選択したら、たぶん自動削除のチェックは効きません。
------------
int CALLBACK FolderPropDlgProc( HWND hwnd, UINT message, WPARAM wParam,
LPARAM lParam ) {
    switch( message ) {
    case WM_INITDIALOG:
        SendDlgItemMessage2( hwnd, IDE_FOLDER_NAME, EM_LIMITTEXT, sizeof
(pFolderDlg->szNewFolderName) - 1 );
        SetDlgItemText( hwnd, IDE_FOLDER_NAME, pFolderDlg->pchBaseName
 );
        if( !pFolderDlg->fRenameOK ) {
            EnableDlgItem( hwnd, IDE_FOLDER_NAME, FALSE );
        }
        SendDlgItemMessage( hwnd, IDV_RETAIN_MONTH, UDM_SETRANGE, 0,
MAKELPARAM( 999, 1 ) );
        if( pFolderDlg->data.autodel_nMonth != 0 ) {
            CheckDlgButton( hwnd, IDB_LOG_AUTO_DELETE, TRUE );
            SetDlgItemInt( hwnd, IDE_RETAIN_MONTH, pFolderDlg->data.
autodel_nMonth, FALSE );
            CheckDlgButton( hwnd, IDB_AUTODEL_CONFIRM, ! pFolderDlg->
data.autodel_fDontConfirm );
        } else {
            SetDlgItemText( hwnd, IDE_RETAIN_MONTH, "12" );
            CheckDlgButton( hwnd, IDB_AUTODEL_CONFIRM, TRUE );
        }
        {
            char    sz[128];
            DWORDLONG   ftLimit;
            GetSystemTimeAsFileTime( (FILETIME*)&ftLimit );
            ftLimit -= 32 * 24 * 60 * 60 * (DWORDLONG)10000000;
            ftLimit = pFolderDlg->data.autodel_ftLast - ftLimit;
            int cDay = (int)(ftLimit / ((DWORDLONG)24 * 60 * 60 *
(DWORDLONG)10000000));
            if( (DWORD)cDay > 31 ) {
                cDay = 31;
            }
            wsprintf( sz, "(削除確認の予定日 = あと%u日)", cDay );
            SetDlgItemText( hwnd, IDT_AUTODEL_WILL, sz );
        }
        SendMessage2( hwnd, WM_COMMAND, IDB_LOG_AUTO_DELETE );
        {
            HWND    hwndMemo = GetDlgItem( hwnd, IDE_MEMO );
            SubclassNonSelectEdit( hwndMemo );
            SetWindowText( hwndMemo, pFolderDlg->signs.strMemo.Direct()
 );
            SendMessage2( hwndMemo, WM_SETFONT, (WPARAM)hfontFixed );
        }
        break;
        //return TRUE;

    case WM_COMMAND:
        if( LOWORD(wParam) == IDOK ) {
            pFolderDlg->signs.strMemo.GetDlgItemText( hwnd, IDE_MEMO );
            BOOL    fTemp;
            if( IsDlgButtonChecked( hwnd, IDB_LOG_AUTO_DELETE ) ) {
                int nMonth = GetDlgItemInt( hwnd, IDE_RETAIN_MONTH, &
fTemp, FALSE );
                if( nMonth < 1 ) {
                    nMonth = 1;
                } else if( nMonth > 999 ) {
                    nMonth = 999;
                }
                pFolderDlg->data.autodel_nMonth = nMonth;
                GetSystemTimeAsFileTime( (FILETIME*)&pFolderDlg->data.
autodel_ftLast );
                CListWnd*   pwnd = title.GetListWnd( &pFolderDlg->folpa,
FALSE );
                if( pwnd != NULL ) {
                    pwnd->listcache.fWantCheckAutoDel = TRUE;
                    pwnd->listcache.fSelectionChanged = TRUE;
                    SetTimer( hwndTitleDlg, IDTIMER_CHECKAUTODELETE, 300,
NULL );
                }
            } else {
                pFolderDlg->data.autodel_nMonth = 0;
            }
            pFolderDlg->data.autodel_fDontConfirm = ! IsDlgButtonChecked
( hwnd, IDB_AUTODEL_CONFIRM );
            if( pFolderDlg->fRenameOK ) {
                GetDlgItemText( hwnd, IDE_FOLDER_NAME, pFolderDlg->
szNewFolderName, sizeof(pFolderDlg->szNewFolderName) );
                StripTrailSpace( pFolderDlg->szNewFolderName );
                if( pFolderDlg->szNewFolderName[0] == '\0' ) {
                    ErrorMessage( IDS_E_LACK_FILENAME );
                    SetFocus( GetDlgItem( hwnd, IDE_FOLDER_NAME ) );
                    fCancelOK = TRUE;
                    break;
                }
                char    szErrorOut[80];
                if( !IsValidFileName( pFolderDlg->szNewFolderName,
szErrorOut ) ) {
                    char    szMessage[256];
                    strcpy( szMessage, GetStrRes( IDS_E_FILENAME_INVALID
 ) );
                    strcat( szMessage, szErrorOut );
                    ErrorMessage( szMessage );
                    SetFocus( GetDlgItem( hwnd, IDE_FOLDER_NAME ) );
                    fCancelOK = TRUE;
                    break;
                }
            }
            if( config.folpa.szSubFolder[0] != '\0' ) {
                if( strcmp( pFolderDlg->pchBaseName, pFolderDlg->
szNewFolderName ) != 0 ) {
                    if( ! CheckTransmitting( 0 ) ) {
                        fCancelOK = TRUE;
                        break;
                    }
                    if( folder.IsLongFolderName( pFolderDlg->
szNewFolderName ) ) {
                        ErrorMessage( IDS_E_FOLDERNAME_TOOLONG );
                        SetFocus( GetDlgItem( hwnd, IDE_FOLDER_NAME ) );
                        fCancelOK = TRUE;
                        break;
                    }
                    title.SaveAll();
                    CAddedFolder::SaveAll();
                    CFolderProp::SaveAll();
                    char    szNewPath[MAX_PATH];
                    strcpy( szNewPath, pFolderDlg->szPath );
                    strcpy( szNewPath + strlen(szNewPath) - strlen
(pFolderDlg->pchBaseName), pFolderDlg->szNewFolderName );
                    if( !MoveFile( pFolderDlg->szPath, szNewPath ) ) {
                        int nError = GetLastError();
                        char    szError[256];
                        wsprintf( szError, GetStrRes(
IDS_E_FOLDER_RENAME ), nError );
                        ErrorMessage( szError );
                        SetFocus( GetDlgItem( hwnd, IDE_FOLDER_NAME ) );
                        fCancelOK = TRUE;
                        break;
                    }
                    folder.NotifyFolderNameChanged( pFolderDlg->
szNewFolderName );
                    strcpy( pFolderDlg->pchBaseName, pFolderDlg->
szNewFolderName );
                    strcpy( pFolderDlg->szPath, szNewPath );
                    char    szNewSubFolder[MAX_SUBFOLDER_LENGTH];
                    {
                        char    szBasePath[MAX_PATH];
                        FOLPA   folpaBase;
                        folpaBase.Init( pFolderDlg->folpa.szUser,
pFolderDlg->folpa.iFolder ).MakeFullPath( szBasePath );
                        strcpy( szNewSubFolder, szNewPath + strlen
(szBasePath) + 1 );
                    }
                    CFolderProp*    pProp = CFolderProp::GetFolderProp(
&pFolderDlg->folpa );
                    strcpy( pProp->folpa.szSubFolder, szNewSubFolder );
                    strcpy( pFolderDlg->folpa.szSubFolder,
szNewSubFolder );
                }
            }
        } else if( LOWORD(wParam) == IDB_LOG_AUTO_DELETE ) {
            BOOL    fEnable = IsDlgButtonChecked( hwnd,
IDB_LOG_AUTO_DELETE );
            EnableDlgItem( hwnd, IDE_RETAIN_MONTH, fEnable );
            EnableDlgItem( hwnd, IDT_RETAIN_MONTH, fEnable );
            EnableDlgItem( hwnd, IDB_AUTODEL_CONFIRM, fEnable );
            ShowWindow( GetDlgItem( hwnd, IDT_AUTODEL_WILL ), fEnable ?
SW_SHOW : SW_HIDE );
        } else if( LOWORD(wParam) == IDB_AUTODEL_CONFIRM ) {
            if( ! IsDlgButtonChecked( hwnd, IDB_AUTODEL_CONFIRM ) ) {
                if( MessageBox2( hwnd, IDS_QUERY_AUTODEL_CONFIRM_OFF
                        , szTuruKameTitle, MB_ICONQUESTION | MB_YESNO |
MB_DEFBUTTON2 ) != IDYES ) {
                    CheckDlgButton( hwnd, IDB_AUTODEL_CONFIRM, TRUE );
                }
            }
        } else if( LOWORD(wParam) == IDB_HELP ) {
            HelpSub( IDH_FOLDER_PROP );
        }
        break;
    }
    return 0;
}




struct FOLDERPROPDATA {
    WORD            division;               // V2.03からdivisionが4バイ
トから2バイトになった。
    WORD            version;                // V2.03から1。
    DWORD           cbSizeLimit;            // 1ファイルの最大サイズ
    char            szPrefix[80];           // ファイル名の前に付ける文
字列
    char            szExt[20];              // ファイルの拡張子
    BYTE            fOverrideAccount;       // アカウント設定の上書き、
2の場合は上位階層の設定に従う
    BYTE            fOverrideTemplate;      // 定型文字列設定の上書き、
2の場合は上位階層の設定に従う
    BYTE            fReplySignature;        // 返信メールにも署名を入れ

    BYTE            fForwardSignature;      // 転送メールにも署名を入れ

    char            szName[80];             // 上書き用
    char            szEmail[80];            // 上書き用
    char            szReply[80];            // 上書き用
    char            szTo[80];               // 新規メール時のTo:の初期値
    char            szMacro_NewMail[80];    // 使わない
    char            szMacro_Reply[80];      // 使わない
    char            szMacro_Forward[80];    // 使わない
    BYTE            fBccAlways;             // 自分のメールアドレスを
Bcc:ヘッダに入れる
    BYTE            abReserved[3];          // 境界合わせ用。
    char            szOrganization[80];     // V0.84 所属
    int             autodel_nMonth;         // nヶ月以上前の古いデータを
自動削除する V1.50〜
    BOOL            autodel_fDontConfirm;   // 削除する時に警告メッセー
ジを表示しない
    DWORDLONG       autodel_ftLast;         // 最後に削除または警告を出
した日付
    char            szBookGroup[128];       // アドレス帳を出した時に選
択するグループ
    int             nLastFileNumber;        // V1.59
    int             nLastFileNumberDate;    // V1.59
    char            szBccEmail[80];         // V1.59 fBccAlways時のメー
ルアドレス、ここが存在しなかった場合はszEmailを入れる。
};

[ ]
RE:13188 古くなったメールの自動削除につNo.13193
L47B307 さん 03/06/04 00:12
 
>  フォルダごとの設定を開いて、そこでOKを押すと、その瞬間に自動削除のチェ
> ックが行われます。なので、そうするとまた「次回のチェック予定」は31日後
> に設定されなおします。
>
>  なので、毎日「まだかなまだかな?」とフォルダプロパティを開いてはOKと操
> 作したら、ずっと31日のままです。

 それは気づいていました。
 他の設定をいじったときにもカウントがリセットされてしまうことになりますが、
特に実害がないので報告しませんでした。

 ですから、いつもキャンセルで閉じています。
 試しにOKを押すと、自動削除の確認が出てきました。

>  自動削除のチェックがされた時刻が、フォルダプロパティ中に8バイトで記録
> されます。フォルダを選択したり、フォルダプロパティをOKしたりすると、その
> 瞬間の時刻と、フォルダプロパティ中の「前回のチェック時刻」に31*24時間足
> した時刻を比較して、その差が>0かどうかで判断しているようです。言葉で説明

 つまり、表示される日数が一日減るタイミングは各フォルダによって
異なることになりますね。
 正常に働いているアカウントの方をこまめにチェックして、これは確認できました。

 一般に公開されているニュース用のアカウントなのでアカウントごと提供できます。
 必要なら提供しますがアカウント全部必要ですか?

[ ]
RE:13188 古くなったメールの自動削除につNo.13194
L.davinci さん 03/06/04 00:39
 

2003/06/04(水) 00:02:17

こんにちは、秀まるお2さん

ダヴィンチです。

/*
** タイトル:『hidesoft.8:13188| RE 13185 古くなったメールの自動削除につ
いて』
** 発信日:2003年06月03日(火)
** 発信者:秀まるお2さん
*/
> フォルダごとの設定を開いて、そこでOKを押すと、その瞬間に自動削除のチェ
>ックが行われます。なので、そうするとまた「次回のチェック予定」は31日後
>に設定されなおします。

私は本日まで自動削除機能は問題なく動作していると
思い込んでおりました。

昨日まで(削除確認の予定日=あと9日)と表示されていたのに
上記のように何気に[OK]ボタンを押してしまったばかりに
今度は(削除確認の予定日=あと31日)に変更されてしまいました。
ちょっと悲しい。o( _ _ )o ショボーン

>
> なので、毎日「まだかなまだかな?」とフォルダプロパティを開いてはOKと操
>作したら、ずっと31日のままです。

これはまずいです。
例えば[今日からチェック]というボタンを押したら
その日から削除確認の予定日を計算するのが良いので
はないでしょうか?

つまり、自動削除の『チェック開始時刻』が
フォルダプロパティに記録されるのです。
同時に『自動削除の予定日』を計算して、それもフォルダに
記録してはどうでしょう。後々の削除チェックの計算が少しシンプルに
なります。

そうすれば、私がやってしまったような誤操作は
少なくなるのではないでしょうか?

今更データ構造に影響するような変更は危険でしょうか?

>
> ただし、その場合でも、ダイアログボックスをOKした瞬間に自動削除のチェッ
>クが働くはずでして、それで実用上は差し支えないはずではあります。
>
>> この数値がカウントダウンされるタイミングはいつでしょうか?
>
> カウントダウンという処理はありません。
>
> 自動削除のチェックがされた時刻が、フォルダプロパティ中に8バイトで記録
>されます。フォルダを選択したり、フォルダプロパティをOKしたりすると、その
>瞬間の時刻と、フォルダプロパティ中の「前回のチェック時刻」に31*24時間足
>した時刻を比較して、その差が>0かどうかで判断しているようです。言葉で説明
>するのが面倒なので、最後にフォルダプロパティのダイアログボックスプロシジ
>ャを書いておきます。

また『フォルダを選択したり、フォルダプロパティをOKしたりする』
タイミングで自動削除予定の日付をチェックしているようですが、
自動削除を上記の処理のタイミングでチェックする意図が分かりません。

逆に削除予定日が過ぎてしまっても、該当フォルダに対して
上記の操作をしなければ、『削除』されないという事でしょうか?

上記の操作に加えメールの受信処理の時に『自動削除のチェック処理』を
行なっては、どうでしょう。
『定期受信』にしていれば、定期的にチェックされます。ただし、
1日に何回もチェックする事は意味がありませんので、その日の最初の
受信処理の時のみと決めておけばいいのではないでしょうか?
または起動時など、ユーザーの運用に合わせて選択できると
尚良いでしょう。

あくまで私の個人的な意見として、お聞き下さい。
最終的な仕様は秀まるお様にお任せ致します。

どうぞ宜しくお願い致します。

[ ]
RE:13194 古くなったメールの自動削除につNo.13196
秀まるお2 さん 03/06/04 08:26
 
 L47B307さんへのコメントとかけもちさせていただきます。

■自動削除が効かないフォルダがある件について

 予定日がずっと31日のまま変化しないって話ですよね。だとしたら、実はソー
スコード上で1つそうなる可能性を見つけました。prop.binに記録されている
「前回のチェック時刻」が遠い未来に設定されていると、ずっと31日と表示され
てしまうようです。32以上になっていたら31と表示するようになってまして…。

 なので、そこの処理から直します。

■0.3秒後の話

 その前に、フォルダを選択してから0.3秒以内に他のフォルダを選択すると自
動削除がキャンセルされるようなことを言いましたが、それは間違いでした。た
しかに0.3秒のタイマーをセットしてましたが、タイマーをセットすると同時に
PostMessageでWM_TIMERをPostしてるので、よほど高速にフォルダ切り替えしな
いかぎり自動削除が効くはずです。仮にそれで自動削除が効かなかったとしても、
次回選択時には効くはずです。(次の31日後ってことにはならないはず)

■フォルダプロパティでOKした時の話

 フォルダプロパティでOKすると自動削除が勝手に働いて、さらには次の予定日
が勝手に31日後に変更されてしまう件は、たしかにわかりにくいです。

 OKボタンを押しても予定日が変わることは無いようにし、それとは別に、自動
削除のチェックを今すぐするための「今すぐチェック」ボタンを追加することに
します。

■自動削除のタイミングについて

 フォルダを選択した時に自動削除のチェックが行われるという仕様は、鶴亀
メールを作る側の都合による物です。例えば鶴亀メール起動/終了時とかにやろ
うとすると、すべてのフォルダのフォルダプロパティを全部ロードしないといけ
なくなって、大変遅くなります。

 ダヴィンチさんご指摘の「受信時」なら、どうせそのタイミングでいろんな
データをロードすることになるので、それでついでにもうちょっと遅くしてもい
いかもしれませんけど…。

-------------
 とにかくこの辺の怪しい処理は見直しますので、それまでお待ちください。

[ ]
RE:13196 古くなったメールの自動削除につNo.13198
秀まるお2 さん 03/06/04 09:07
 
■自動削除が効かないフォルダがある件について

 今ソースコードを直しつつ調べてますが、1つまた自動削除が発行されない原
因が分かってしまいました。

 そこのフォルダをただ毎日選択してただけだと、やっぱり自動削除は発行され
ませんでした。フォルダに何らかのメールが追加されないと自動削除が発行され
ませんでした。

 何か意図してそういう仕様にしたのかバグでそうなったのか分かりませんが、
とにかく修正させていただきます。

 大変お手数かけました。

[ ]
RE:13196 古くなったメールの自動削除につNo.13213
L.davinci さん 03/06/04 22:13
 

2003/06/04(水) 22:05:32

こんにちは、秀まるお2さん

ダヴィンチです。

/*
** タイトル:『hidesoft.8:13196| RE 13194 古くなったメールの自動削除につ
いて』
** 発信日:2003年06月04日(水)
** 発信者:秀まるお2さん
*/
>■フォルダプロパティでOKした時の話
>
> フォルダプロパティでOKすると自動削除が勝手に働いて、さらには次の予定日
>が勝手に31日後に変更されてしまう件は、たしかにわかりにくいです。
>
> OKボタンを押しても予定日が変わることは無いようにし、それとは別に、自動
>削除のチェックを今すぐするための「今すぐチェック」ボタンを追加することに
>します。

Ver.2.88では、『今すぐ削除!』になってました。
これでは、『今すぐチェック』とは意味が変わってしまいます。
何か理由があって、変更されたのですか?

>
>■自動削除のタイミングについて
>
> フォルダを選択した時に自動削除のチェックが行われるという仕様は、鶴亀
>メールを作る側の都合による物です。例えば鶴亀メール起動/終了時とかにやろ
>うとすると、すべてのフォルダのフォルダプロパティを全部ロードしないといけ
>なくなって、大変遅くなります。
>
> ダヴィンチさんご指摘の「受信時」なら、どうせそのタイミングでいろんな
>データをロードすることになるので、それでついでにもうちょっと遅くしてもい
>いかもしれませんけど…。

自動削除が設定されたフォルダの情報をCSV形式の一覧表で
管理するようにすれば、フォルダの巡回も効率良く動けると
思います。

フォルダID,削除予定日,処理フラグ,削除確認予定情報 など

でも・・・そうは行かないのかな???

内部的な処理パーフォーマンスの影響については、
秀まるお様にお任せするしかございません。

どうぞ宜しくお願い致します。

[ ]
RE:13213 古くなったメールの自動削除につNo.13215
秀まるお2 さん 03/06/04 22:25
 
>Ver.2.88では、『今すぐ削除!』になってました。
>これでは、『今すぐチェック』とは意味が変わってしまいます。

 まぁ、そんな細かいことくらいどうでもいいじゃないかと思う訳ですが…。

 「自動削除する時に確認メッセージを表示する」がOFFの場合は暗黙のうちに
削除されてしまうので、しいて「チェック」よりは「削除」と言っておいたほう
が無難かと思った訳です。

[ ]
RE:13198 古くなったメールの自動削除につNo.13216
L47B307 さん 03/06/04 22:29
 
>  そこのフォルダをただ毎日選択してただけだと、やっぱり自動削除は発行され
> ませんでした。フォルダに何らかのメールが追加されないと自動削除が発行され
> ませんでした。

 確かに、自動削除が利かないアカウントはここ数ヶ月メールがありませんでした。
 v2.88では正常に働きました。

>  予定日がずっと31日のまま変化しないって話ですよね。だとしたら、実はソー
> スコード上で1つそうなる可能性を見つけました。prop.binに記録されている
> 「前回のチェック時刻」が遠い未来に設定されていると、ずっと31日と表示され
> てしまうようです。32以上になっていたら31と表示するようになってまして…。

 こちらはもう考えなくても良くなったのですね。

[ ]
RE:13215 古くなったメールの自動削除につNo.13217
L.davinci さん 03/06/04 22:46
 

2003/06/04(水) 22:45:16

こんにちは、秀まるお2さん

ダヴィンチです。

/*
** タイトル:『hidesoft.8:13215| RE 13213 古くなったメールの自動削除につ
いて』
** 発信日:2003年06月04日(水)
** 発信者:秀まるお2さん
*/
>まぁ、そんな細かいことくらいどうでもいいじゃないかと思う訳ですが…。
>
> 「自動削除する時に確認メッセージを表示する」がOFFの場合は暗黙のうちに
>削除されてしまうので、しいて「チェック」よりは「削除」と言っておいたほう
>が無難かと思った訳です。

なるほど「自動削除する時に確認メッセージを表示する」の
設定と連動していたのですね。
そう言われれば理解出来ます。

では。

[ ]
RE:13196 古くなったメールの自動削除につNo.13220
まんぼう さん 03/06/05 05:31
 
>  その前に、フォルダを選択してから0.3秒以内に他のフォルダを選択すると自
> 動削除がキャンセルされるようなことを言いましたが、それは間違いでした。た
> しかに0.3秒のタイマーをセットしてましたが、タイマーをセットすると同時に
> PostMessageでWM_TIMERをPostしてるので、よほど高速にフォルダ切り替えしな
> いかぎり自動削除が効くはずです。

これなんですが、私の場合、終了時のマクロに自動削除したいフォ
ルダを選択(SelectFolder)するものを組み込んでいますが、この
程度の短い選択では自動削除は効かないってことでしょうか?
なんとか完全自動したいのですが、良い方法ありますでしょうか?

参考:↓こんなマクロですが。

//自動削除フォルダを選択する
loaddll "TKInfo.dll";

#n=dllfunc("DisableDraw",1);

#n = dllfunc( "SelectFolder", "*****", "ゴミ箱" );
#n = dllfunc( "SelectFolder", "*****", "送信済み\\SentML" );

#n=dllfunc("EnableDraw");

[ ]
RE:13216 古くなったメールの自動削除につNo.13222
秀まるお2 さん 03/06/05 08:33
 
>  こちらはもう考えなくても良くなったのですね。

 未来になった場合は即刻自動削除を起動するように修正しました。(実際の動
作確認までしてないことに今気づいたけど)

[ ]
RE:13220 古くなったメールの自動削除につNo.13223
秀まるお2 さん 03/06/05 08:38
 
 細かく検証した訳ではないですが、終了時のマクロではどうやっても自動削除
させることは出来ないと思います。

 現状の仕様は、あくまで対象のフォルダを選択して表示して一段落したら、そ
このフォルダを対象に自動削除をするような処理しかありません。複数のフォル
ダにまたがって自動削除を一括起動するとなると、それはそれで新規にそういう
処理を作らないといけないです。なんせ「削除」についての処理なので、動作検
証も大変だし、技術的なハードルが少々高くなります。

 (そもそも、今の自動削除すらまともに動いてなかった訳だし)

 ということで、今のところはあきらめて欲しいです。

[ ]
RE:13220 古くなったメールの自動削除につNo.13228
ひろ さん 03/06/05 12:25
 
 まんぼうさん今日は、ひろです。
> これなんですが、私の場合、終了時のマクロに自動削除したいフォ
> ルダを選択(SelectFolder)するものを組み込んでいますが、この
> 程度の短い選択では自動削除は効かないってことでしょうか?
> なんとか完全自動したいのですが、良い方法ありますでしょうか?
 削除するルーチンもマクロで書いてしまえばよいです。
 実際の実装方法は、どの様な仕様にするかで変わりますので割愛しまが、詳
細な仕様を書かれたら、誰かが書いてくれるかもしれません。

 またマクロのコーディングについて質問があれば、改めて
http://www.maruo.co.jp/turukame/2/
に新規で投稿してください。

[ ]