|   |  
 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; 
 
			 | 
		  
	 |