|
hyoshitomo さん今日は、ひろです。
標題のマクロを作ってみました。
削除時にコマンドプロンプトが表示されるので「プロパティ」で「実行時
の大きさ」は「最小化の状態」とし、「プログラム終了時にウィンドウを閉
じる」を ON にしてください。これは最初だけので、次回から出てきません。
ただしメールをコピーしていても、添付ファイルは問答無用で削除します。
また自動実行マクロに指定していると、メールを読んでいる最中に勝手に動
作すると邪魔なので、手動や終了時での実行をおすすめします。
//---------- 特定の添付ファイル (RFC-INFO.TXT) だけ削除 --------------
loaddll "tkinfo.dll";
//設定の一時変更
#Header = dllfunc( "HeaderView" );
#tmp = dllfunc( "SwitchHeaderView", 2 );
openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
#Unread = getregnum( "UnreadSwitch" );
writeregnum "UnreadSwitch", 0xffffffff;
#Activate = getregnum( "ActivateUnreadSwitch" );
writeregnum "ActivateUnreadSwitch", 0;
#ByOpen = getregnum( "UnreadSwitchByOpen" );
writeregnum "UnreadSwitchByOpen", 0;
#tmp = dllfunc( "EnvChanged" );
closereg;
$pack = dllfuncstr( "GetFindPack" );
#tmp = dllfunc( "DisableDraw", 1 );
if( !dllfunc( "SetMainWndTop" ) )goto Erro;
if( !dllfunc( "SelectFolder", dllfuncstr( "Account", 0 ), "" ) )goto Erro;
if( !dllfunc( "SetFindPack",
"(\"\\\\\\\\(R|r)(F|f)(C|c)-(I|i)(N|n)(F|f)(O|o)\\\\.(T|t)(X|x)(T|t)$\"," +
"regular, target=\"X-Attach:\")," +
"flag=attach&transmit=メーラー起動時-指定なし, subfolder=1, inmail=3" ) )
//この下線部^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^削除で、時間指定なし
goto Erro;
while( dllfunc( "FindDownInclude" ) ){
$src = dllfuncstr( "CurrentHeader", "X-Attach" );
//ファイル削除
if( dllfunc( "CountCurrentHeader", "X-Attach" ) == 1 ){
call strstr2 $src, "\\";
$src = leftstr( $src, ##return );
}
runsync2 "deltree.exe /Y \"" + dllfuncstr( "HomeDir" )
+ dllfuncstr( "CurrentAccount" ) + "\\" + $src + "\"";
//ヘッダ削除
if( !dllfunc( "OpenMail" ) )goto Erro;
if( readonly ){
if( !dllfunc( "EnableEdit" ) )goto Erro;
}
gofiletop;
searchup "X-Attach: " + $src;
selectline;
delete;
save;
#whd = hidemaruhandle( 0 );
if( !dllfunc( "SetMainWndTop" ) )goto Erro;
closehidemaru #whd;
#tmp = dllfunc( "SetMailFlag", "altered", 0 );//改変フラグ OFF
}
goto End;
strstr2:// 文字列の後方から文字列を検索するサブルーチン
##RC = -1;
##Size = strlen($$2);
while( 1 ){
##Pos = strstr( $$1, $$2 );
if( ##Pos == -1 )break;
##RC = ##RC + ##Pos + ##Size;
$$1 = rightstr( $$1, strlen( $$1 ) - ##Pos - ##Size );
}
return ##RC;
Erro:
message "DLL 関数失敗";
End://設定を元に戻す
openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
writeregnum "UnreadSwitch", #Unread;
writeregnum "ActivateUnreadSwitch", #Activate;
writeregnum "UnreadSwitchByOpen", #ByOpen;
#tmp = dllfunc( "EnvChanged" );
closereg;
#tmp = dllfunc( "SwitchHeaderView", #Header );
#tmp = dllfunc( "EnableDraw" );
#tmp = dllfunc( "SetFindPack",$pack );
freedll;
|
|