|
とりあえず、届いたメールを選択して実行する用のマクロということで作ってみま
した。
マクロのやってることは、
1.「返信メール」を実行しつつ、その返信メールに返信元メールの
添付ファイルをそのまま添付する。
2.その添付ファイルをデスクトップ上の「HMTemp」フォルダにコピー
して開く。
3.OKボタンを押したら、編集したファイルを添付しなおす。
ってな具合です。
--------マクロ開始------------------------------------------------
loaddll "tkinfo.dll";
#n = dllfunc("MakeReplyCustom", "", "CopyAttach");
if( #n == 0 ) {
endmacro;
}
#count = dllfunc("CountCurrentHeader", "X-Attach");
if( #count == 0 ) {
endmacro;
}
#index = 0;
if( #count > 1 ) {
#i = 0;
$menu[0] = "編集する添付ファイルを選択してください。";
$menu[1] = "\x01";
while( #i < #count ) {
$attach = dllfuncstr("CurrentHeader2", "X-Attach", #i);
$attach = midstr( $attach, strrstr( $attach, "\\" ) + 1 );
$menu[2 + #i] = $attach;
#i = #i + 1;
}
menuarray $menu, #count + 2;
if( result <= 2 ) {
endmacro;
}
#index = result - 3;
}
$attach = dllfuncstr("CurrentHeader2", "X-Attach", #index);
$attachbase = midstr( $attach, strrstr( $attach, "\\" ) + 1 );
$path = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\" + $a
ttach;
$desktop = getenv("USERPROFILE") + "\\Desktop";
if( !existfile($desktop) ) {
message "デスクトップフォルダが特定できませんでした。";
endmacro;
}
$destdir = $desktop + "\\HMtemp";
#n = dllfunc("Bypass_CreateDirectory", $destdir);
$destpath = $destdir + "\\" + $attachbase;
#n = dllfunc("Bypass_CopyFile", $path, $destpath, 0);
if( #n == 0 ) {
#code = dllfunc("Bypass_GetLastError");
message "添付ファイルをデスクトップの一時編集用フォルダにコピーする
のが失敗しました。\n"
+ "コピー元ファイル = " + $path + "\n"
+ "コピー先ファイル = " + $destpath + "\n"
+ "エラーコード = " + str(#code);
endmacro;
}
#attr = dllfunc("Bypass_GetFileAttributes", $destpath);
if( (#attr & 1) != 0 ) {
#n = dllfunc("Bypass_SetFileAttributes", $destpath, #attr & 0xFFFE);
}
openbyshell $destpath;
if( result != yes ) {
message "添付ファイルをデスクトップの一時編集用フォルダに保存しまし
たが、ファイルを開くことに失敗しました。";
endmacro;
}
message "ファイルを開きました。編集が終わったらOKボタンを押してください。";
#n = dllfunc("Bypass_CopyFile", $destpath, $path, 0);
if( #n == 0 ) {
#code = dllfunc("Bypass_GetLastError");
message "添付ファイルをデスクトップの一時編集用フォルダから戻す用の
コピーに失敗しました。\n"
+ "コピー元ファイル = " + $destpath + "\n"
+ "コピー先ファイル = " + $path + "\n"
+ "エラーコード = " + str(#code);
endmacro;
}
#n = dllfunc("Bypass_DeleteFile", $destpath);
#n = dllfunc("Bypass_RemoveDirectory", $destdir);
message "編集した添付ファイルで置き換えました。";
--------マクロ終了------------------------------------------------
> シンプルなものとしては、デスクトップに保存する、、だけで良さそうですね。
デスクトップの「HMTemp」フォルダに保存して開くだけ、のマクロも一応作ってみ
ました。
--------マクロ開始------------------------------------------------
#count = dllfunc("CountCurrentHeader", "X-Attach");
if( #count == 0 ) {
endmacro;
}
#index = 0;
if( #count > 1 ) {
#i = 0;
$menu[0] = "編集する添付ファイルを選択してください。";
$menu[1] = "\x01";
while( #i < #count ) {
$attach = dllfuncstr("CurrentHeader2", "X-Attach", #i);
$attach = midstr( $attach, strrstr( $attach, "\\" ) + 1 );
$menu[2 + #i] = $attach;
#i = #i + 1;
}
menuarray $menu, #count + 2;
if( result <= 2 ) {
endmacro;
}
#index = result - 3;
}
$attach = dllfuncstr("CurrentHeader2", "X-Attach", #index);
$attachbase = midstr( $attach, strrstr( $attach, "\\" ) + 1 );
$path = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\" + $a
ttach;
$desktop = getenv("USERPROFILE") + "\\Desktop";
if( !existfile($desktop) ) {
message "デスクトップフォルダが特定できませんでした。";
endmacro;
}
$destdir = $desktop + "\\HMtemp";
#n = dllfunc("Bypass_CreateDirectory", $destdir);
$destpath = $destdir + "\\" + $attachbase;
#n = dllfunc("Bypass_CopyFile", $path, $destpath, 0);
if( #n == 0 ) {
#code = dllfunc("Bypass_GetLastError");
message "添付ファイルをデスクトップの一時編集用フォルダにコピーする
のが失敗しました。\n"
+ "コピー元ファイル = " + $path + "\n"
+ "コピー先ファイル = " + $destpath + "\n"
+ "エラーコード = " + str(#code);
endmacro;
}
#attr = dllfunc("Bypass_GetFileAttributes", $destpath);
if( (#attr & 1) != 0 ) {
#n = dllfunc("Bypass_SetFileAttributes", $destpath, #attr & 0xFFFE);
}
openbyshell $destpath;
--------マクロ終了------------------------------------------------
|
|