|
> ・添付ファイルがあるメールを送信する場合に、ファイル圧縮のする/しな い
>の指定ができるウィンドウが表示されて、その指定によって、
> 添付ファイルの圧縮してメールが送信できる
やりたい機能ではありますが、まだ手を付けてません。
一応、コマンドラインから起動できる圧縮ソフト(lha32.exeとか)とマク
ロを使えば似たようなことは出来ます。ということで、作ってみたのが以下の
マクロです。
lha32.exeを適当なフォルダ(環境編集PATHの通ったフォルダ)にインス
トールしておく必要があります。そういう前提でお試しください。
あ、Windows95/98/Meの場合、cmd.exeという部分をcommand.exeに書き換え
ないとダメかもしれないです。
// 添付ファイルを圧縮して1つにするマクロ
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;
}
$dest = $aAttach[0] + ".lzh";
while(1) {
#n = strstr( $dest, "\\" );
if( #n < 0 ) {
break;
}
$dest = midstr( $dest, #n + 1, 256 );
}
$dest = input( "圧縮して作成するファイル名は?", $dest );
if( $dest == "" ) {
endmacro;
}
$tmp = getenv("temp");
if( $tmp == "" ) {
$tmp = getenv("tmp");
}
if( rightstr($tmp, 1) != "\\" ) {
$tmp = $tmp + "\\";
}
$cmd = "lha32 a " + $tmp + $dest;
#i = 0;
openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
$home = getregstr( "HomeDir" );
$account = dllfuncstr("CurrentAccount");
while( #i < #cAttach ) {
$cmd = $cmd + " " + $home + $account + "\\" + $aAttach[#i];
#i = #i + 1;
}
runsync2 $cmd;
if( !result ) {
message "lha32.exeの実行に失敗しました。";
endmacro;
}
#n = dllfunc( "AddAttach", $tmp + $dest );
// ファイルの削除
$cmd = "cmd.exe /c del " + $tmp + $dest;
runsync2 $cmd;
if( #n == 0 ) {
message "添付ファイルの追加に失敗しました。";
endmacro;
}
#i = 0;
while( #i < #cAttach ) {
#n = dllfunc( "UndoAttach", $aAttach[#i] );
#i = #i + 1;
}
|
|