saveasについてNo.00183
hirahira6014 さん 08/02/14 09:41
 
hirahiraといいます。

いつも秀丸メールにお世話になっております。

saveasについて、ひとつ教えて下さい。

マクロでsaveasを実行すると、以前に保存したフォルダが開きますが、

この情報(以前保存したフォルダ名)は取得することが可能でしょうか。

また、変更することが可能でしょうか。

よろしくお願いいたします。

[ ]
RE:00183 saveasについてNo.00184
秀まるお さん 08/02/14 11:11
 
 ここの会議室は普段ほとんど見てないんですが、たまたま見たのでお返事さ
せていただきます。

 ここで言う「saveas」とは、大文字の「SAVEAS」のことかと思いますが、そ
れで保存する先のデフォルトのフォルダを知る方法はあります。SaveConfig関
数を呼び出してから、秀丸メールのレジストリの中のExpDirの値を見ればいい
です。

 loaddll "tkinfo.dll";
 #n = dllfunc("SaveConfig");
 openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
 $s = getregstr("ExpDir");
 closereg;
 message $s;

 ってな具合で、たしかに直前にSAVEAS;したフォルダが表示されると思いま
す。

[ ]
RE:00184 saveasについてNo.00185
hirahira6014 さん 08/02/14 16:51
 
>たしかに直前にSAVEAS;したフォルダが表示されると思います。

表示されました。ありがとうございます。

そうすると、これを書き換えるのは、

 loaddll "tkinfo.dll";
 #n = dllfunc("SaveConfig");
 openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
 //$s = getregstr("ExpDir");
 $s = "c:\\○○\\○○"
 writeregstr "ExpDir", $s;
 closereg;
 //message $s;

でよろしいでしょうか。


[ ]
RE:00185 saveasについてNo.00186
秀まるお さん 08/02/14 17:10
 
 書き換えるのはそれでいいですが、書き換えた内容を秀丸メールに読み込ませ
るために、EnvChanged関数をパラメータに「1」を付けて呼び出さないといけな
いです。

    closereg;

 の後に、

    #n = dllfunc("EnvChanged", 1);

 を入れればいいです。詳しくはEnvChanged関数のヘルプを参照ください。

[ ]
RE:00186 saveasについてNo.00187
hirahira6014 さん 08/02/14 20:22
 
> 書き換えるのはそれでいいですが、書き換えた内容を秀丸メールに読み込ませ
>るために、EnvChanged関数をパラメータに「1」を付けて呼び出さないといけな
>いです。

ありがとうございます。

内容の書き換えに成功しました。

また、便利になりました。(^_^)/


[ ]