マクロの質問2点No.05465
EMiCC さん 02/02/21 17:11
 
鶴亀マクロは初めて(秀丸マクロも簡単なものを1〜2本程度)の初心者です。
以下の機能を実現させるマクロを書いてみたのですが、どうもスマートにできません。
 1)定期的(30sec〜60sec)に一度、特定のファイルがあるか調べる。
 2)ファイルがあったらその内容を本文として特定のアドレスへ送信する。
実現方法として、
 a)新規メール作成
 b)特定のファイルを添付ファイルとして追加
 c)失敗したらファイルがないということなのでメールを破棄してマクロ終了
 d)ファイルが添付できたらその添付ファイルを取り消し
 e)秀丸を起動
 f)秀丸側のマクロでファイルを開け、中身をクリップボードへコピーし、秀丸終了
 g)クリップボードを本文にペースト
 h)To・Subjectを設定
 i)今すぐ送信してマクロ終了
 上記マクロを[受信が一段落した時]に登録し、定期的な受信を1分ごとにする
としてみました。

で、ここからが質問なのですが、
 ・もっといい実現方法があるのか?(というか私は変なやり方をしているのか?)
 ・秀丸マクロでファイルオープンに失敗した場合、鶴亀側のマクロに知らせる方法
があるのか?
の2点です。

識者の方々、ご教授をお願い致します。 <m(_ _)m>

[ ]
RE:05465 マクロの質問2点No.05472
hi_sugar さん 02/02/21 18:37
 
>で、ここからが質問なのですが、
> ・もっといい実現方法があるのか?(というか私は変なやり方をしているのか?)
> ・秀丸マクロでファイルオープンに失敗した場合、鶴亀側のマクロに知らせる方
>法があるのか?
>の2点です。

 ファイルが既にできていて、宛先、件名等が固定なら鶴亀メールをコマンドライン
で起動するマクロにするのが手っ取り早いと思います。
(ファイルの先頭は空行が必要です。)

$file    = "C:\\test\\test.txt" ;
$to      = "hogehoge@abc" ;
$subject = "タイトル" ;

if ( existfile($file) ) {
   runsync2 "turukame.exe sendnow  File=\"" + $file + "\" To=\"" + $to + "\"
 Subject=\"" + $subject + "\"" ;
}
endmacro ;

[ ]
RE:05465 マクロの質問2点No.05473
ひろ さん 02/02/21 18:47
 
 EMiCC さん今日は、ひろです。
>  b)特定のファイルを添付ファイルとして追加
>  c)失敗したらファイルがないということなのでメールを破棄してマクロ終了
>  d)ファイルが添付できたらその添付ファイルを取り消し
>  e)秀丸を起動
>  f)秀丸側のマクロでファイルを開け、中身をクリップボードへコピーし、秀丸
>終了
>  g)クリップボードを本文にペースト
の部分は、
insertfile $s;
とすればよいです。なお正否は、result で調べられます。

[ ]
RE:05473 マクロの質問2点No.05477
EMiCC さん 02/02/21 19:38
 
ひろさん、早速の回答ありがとうございます。

>insertfile $s;
>とすればよいです。なお正否は、result で調べられます。

鶴亀でファイル系のマクロは使えないとヘルプのどこかで読んだので、
こんな面倒なことをしたんです。
でもやってみたら・・・このコマンドは使えるんですね。
今回の苦労はきっと次回マクロを作る時の肥やしになってくれるでしょう。
(とでも思わないと悲しい (;_;) )

hi_sugarさんが別の提案をして下さっているので、両方のパターンで作り直して
みたいと思います。

どうも有り難うございました。 <m(_ _)m>

[ ]
RE:05472 マクロの質問2点No.05478
EMiCC さん 02/02/21 19:44
 
> ファイルが既にできていて、宛先、件名等が固定なら鶴亀メールをコマンドライン
>で起動するマクロにするのが手っ取り早いと思います。
>(ファイルの先頭は空行が必要です。)
>
>$file    = "C:\\test\\test.txt" ;
>$to      = "hogehoge@abc" ;
>$subject = "タイトル" ;
>
>if ( existfile($file) ) {
>   runsync2 "turukame.exe sendnow  File=\"" + $file + "\" To=\"" + $to + "\
>" Subject=\"" + $subject + "\"" ;
>}
>endmacro ;

こんな方法があるとはまるっきり知りませんでした。
日ごろからヘルプはきちんと読んでおくものですね。
今回も鶴亀マクロヘルプは色々と見たのですが、まさかそんな方法があるとは
思っても見ませんでしたので、鶴亀メールヘルプは開きもしませんでした。

ひろさんが別の提案をして下さっているので、両方のパターンで作り直して
試してみたいと思います。

どうも有り難うございました。 <m(_ _)m>

[ ]
RE:05465 マクロ完成No.05491
EMiCC さん 02/02/22 12:01
 
ひろさん・hi_sugarさんのおかげで、当初から比べると格段にいい(簡単&短い&早
い)
マクロができあがりました。

今回は固定データが多かったのでhi_sugarさんに提案していただいた方を参考にして
作成しましたが、ひろさんに教えていただいたコマンドは今後もっと複雑な処理をさ
せる
時の参考にさせていただきます。
お二方ともどうも有り難うございました。

協力していただいたお礼のかわりと、他の人の参考になる部分があるかもしれないので
それも兼ねて、つまらないコードですが一応公表致します。

------------------------------------------------------------
$f = "c:\\test.txt";
$t = "Group(/Test)";
$s = "Test Mail";

if ( existfile( $f ) == false )
    // ファイルがなければすぐ終わり
    endmacro;
// メール送信
runsync2 "turukame.exe sendnow  BodyFile=\"" + $f + "\" To=\"" + $t + "\" Su
bject=\"" + $s + "\"";
if ( result == true ) {
    // 送信できたら保存のためにファイル名を変更
    run "cmd.exe /c \"ren " + $f + " " + hour + minute + second + ".txt\"";
} else {
    // 送信が失敗したらBEEP
    beep;
}
------------------------------------------------------------

[ ]