|
いつも、お世話様です。
実際マクロを作成してみたのですが、うまくいきません。
もし、よろしければご指導願いたいのですが。
よろしくお願いします。
場面は添付ファイル付きの受信メールを、フロッピー a ドライブ
にコピーするというものです。
42 行目の run での処理、及び、46 行目の実際にテスト的に作っ
たファイルに対して、実行をかけるとうまくいきますが、実際の添
付ファイルでは駄目です。
見にくいマクロで、お見苦しいのですが、一部を抜粋して、単体で
実行できるようにしました。
//<<マクロ始まり>>
loaddll "TKInfo.dll";
//添付ファイル コピー
tenpu_copy:
if ( dllfunc( "MailType" ) != 3 ){
message "受信メールを選択して下さい。";
return;
}
$homedir =dllfuncstr("HomeDir");
$acc = dllfuncstr( "CurrentAccount" ) + "\\";
$folder = "a:\\";
#cnt = 0;
while(1){
loaddll "TKInfo.dll";
$tenpu[#cnt] = dllfuncstr("CurrentHeader2", "X-Attach", #cnt);
if($tenpu[#cnt] == "") break;
#t_len = strlen( $tenpu[#cnt] );
#i = #t_len - 1;
while ( #i >= 0 ) {
if ( midstr( $tenpu[#cnt], #i, 1 ) == "\\" ) {
$tenpu_f[#cnt] = midstr( $tenpu[#cnt], #i + 1, #t_len -
#i );
break;
}
#i = #i - 1;
}
$file = $homedir + $acc + $tenpu[#cnt];
if ( existfile( $folder + $tenpu_f[#cnt] ) ){
question $tenpu_f[#cnt] + "が存在します。ゴミ箱に移動します。
\nよろしいですか?";
if (result){
//ゴミ箱に移動処理
loaddll(hidemarudir + "\\DengakuDLL.dll");
if ( !dllfunc("MOVE", $folder + $tenp_f[#cnt], $homedir
+ $acc + "ゴミ箱") ) {
message "ファイルの移動に失敗しました";
}
}
else endmacro;
}
//添付ファイル コピー処理
run "command.com /c copy " + $file + " " + $folder + " /-y";
loaddll(hidemarudir + "\\DengakuDLL.dll");
message $file + " " + $folder;
// if (!dllfunc("COPY","/i a:\\a", $folder + "b")) {
if (!dllfunc("COPY","/i " + $file, $folder)) {
message "ファイルのコピーに失敗しました";
}
freedll;
#cnt = #cnt + 1;
}
// loaddll "TKInfo.dll";
endmacro;
//<<マクロ終わり>>
それと、
1.move、copy が tkinfodll、田楽 dll の両方にあるので、その
都度 load、free しなければなりませんよね?初めて田楽 dll
を使わせて頂きましたが、そういう使い方で良いんですよね。
2.42 行目の run で実行したとき、ファイルが既に存在する場合、
dos プロンプトで入力待ちになっている場合、処理は続行され
てします。入力が終わるまで待ってもらうようにできませんか?
3.ゴミ箱移動の処理なんですが、鶴亀のそれでなく win のものに
移動させることは、可能でしょうか?
以上、非常に心苦しいのですが、よろしくお願いします。
|
|