|
でるもんた・いいじまです。
【背景】
保存済みのファイルの内容をぜんぶ別の場所(たとえばWeb上のフォームや、
Excelのシートなど)に転記して、そのファイル自体が不要になった際、
秀丸の画面上で、そのファイルを削除したくなることがあります。
(これは完全削除したいケースと、念のためゴミ箱に入れておきたい
場合とがあります。)
もちろん、内容を空にして上書き保存をすれば
「memo.txt - は空のファイルです。
削除しますか?」
と訊いてきますが、そこでYESを選んでも、.bak ファイルが残ってしまいます。
そのため、.bak ファイルすら残ってほしくないときにはタスクバーの秀丸
アイコンをゴミ箱に drag & drop しているのですが、画面が狭いので、
デスクトップ上で複数のウィンドウを畳んでゴミ箱アイコンを露出させる
のが面倒です。
(これはこれで、ゴミ箱へのショートカットを作って、それをスタート
メニューに入れておくなりショートカットキーを設定しておくなり
すれば一応何とかなる話ではあるのですが、それも少々面倒です。)
【マクロ1】
マクロで
deletefile filename2, 0; //完全削除の場合
deletefile filename2, 1; //ゴミ箱の場合
を試してみましたが、どちらもファイルは削除されず、resultが0になります。
【マクロ2】
下記のマクロで、「ファイルを削除する」という目的はいちおう達せられました。
//------------------------------ ゴミ箱へ -----------------------------
// $$1: ゴミ箱に送るべきファイル
//---------------------------------------------------------------------
Delete_recycle:
#oShApp = createobject("Shell.Application");
#oNS = callmethod_returnobj( #oShApp, "Namespace", 10);
callmethod #oNS, "MoveHere", $$1;
return;
//----------------------------- 完全削除 ------------------------------
// $$1: 削除すべきファイル
//---------------------------------------------------------------------
Delete_complete:
#oFSO = createobject("Scripting.FileSystemObject");
// ファイル名のあとの引数「1」は「read-onlyでも強制削除」の意味
callmethod #oFSO, $$1, 1;
return;
【質問】
秀丸のウィンドウをゴミ箱に D&D した場合には、即座に
「ファイルが削除または移動されました。
破棄して終了しますか?」
という表示が出て、そこでYESを選べば即座に秀丸が閉じてくれるのですが、
上記のマクロで削除した場合、この表示が出てくれません。
上記のマクロ(またはその代替になるマクロ)からこの表示を出すためには、
どうすればいいのでしょうか?
秀丸の設定だけでそういうことができればそれがベストですし、マクロ中で
別途のCOM呼び出しをすれば解決する、ということでも構いません。
もうひとつ別のファイル(バッチファイルなりWSHなり)を生成する解法は、
もし避けられるのであれば避けたいです。
|
|