|
たるっぱです。
>> tkinfo.dllのMove関数を使ってメールを移動する形でなら出来ると思います。
>>ただし、Move関数は鶴亀メール本体ウィンドウ上でしか使えないので、Sync関
>>数と組み合わせるなどしないといけないです。
>
>すみませんでした。手動で移動することにします。
手動で移動すると仰っているのにお節介な気もしますが、マクロを作ってみま
した。
保存先はメニューにより選択できます。フォルダを新規作成したり、名前を
変えたりしても、マクロを修正する必要はありません。
ソース内のコメントにあるとおり、受信メールと送信済みメールでは動きま
せん。本体ウィンドウでの動作も対象外としました。
以下、マクロの中身です
----------------------------------------------------------------------
// 編集中のメールを草稿配下のフォルダに移動して閉じるマクロ
loaddll "tkinfo.dll";
if( !result ) {
message "tkinfo.dllが使えません";
endmacro;
}
if( !dllfunc("IsTuruKame") ) {
endmacro;
}
// 未送信メール以外では実行しない
#mtype = dllfunc( "MailType" );
if( #mtype == -1 || #mtype == 3 || #mtype == 4) {
endmacro;
}
// 本体ウィンドウでは実行しない
if( dllfunc( "IsTuruKameMain") ) {
endmacro;
}
// エディタウィンドウの情報退避
#handle = hidemaruhandle(0);
$acc = dllfuncstr( "CurrentAccount" );
// ターゲットフォルダ情報取得
if (!dllfunc( "SetMainWndTop" )) {
message "本体ウィンドウが表示できません";
endmacro;
}
$folder[0] = "草稿";
if(!dllfunc( "SelectFolder", $acc, $folder[0] )) {
message "草稿フォルダが選択できません";
endmacro;
}
#dmy = dllfunc( "ExpandFolder", 1 );
#i = 1;
while(dllfunc("NextFolder")) {
$folder[#i] = dllfuncstr( "CurrentFolder" );
if (leftstr($folder[#i],5) != "草稿\\") break;
#i = #i + 1;
}
// エディタウィンドウを選び直す
setactivehidemaru #handle;
// ターゲットフォルダ選択
mousemenuarray $folder, #i;
if (!result) {
endmacro;
} else {
#flseq = result - 1;
}
// 一旦、"草稿"フォルダに保存する
if (!dllfunc("SaveDraft")){
message "メールの保存に失敗しました";
endmacro;
}
// 編集中メールを本体ウィンドウで選択する
if (!dllfunc( "Sync" )){
endmacro;
}
// 本体ウィンドウをactiveに
if (!dllfunc( "SetMainWndTop" )) {
message "本体ウィンドウが表示できません";
endmacro;
}
// エディタウィンドウを閉じる
closehidemaru #handle;
// ターゲットフォルダが"草稿"以外ならメールを移動
if (#flseq > 0) {
if (!dllfunc( "Move", $acc, $folder[#flseq] )) {
message "メールの移動に失敗しました";
endmacro;
}
}
|
|