私のメインアプリはwin32アプリで、管理者として実行されます(UACは起動時にプロンプトが表示されます)。
cleanmgr を実行する必要があります。
私はcreateprocess
cleanmgrを起動するために使用します。
GetStartupInfo(stinfo);
stinfo.wShowWindow := SW_SHOWNORMAL;
CreateProcess(nil,PChar(ExpandEnvironment('%systemroot%') + '\System32\cleanmgr.exe /sagerun:3'),nil,nil, False,DETACHED_PROCESS, nil,PChar(ExpandEnvironment('%systemroot%')),stinfo,procinf);
XP 32 ビットでは動作しますが、Win7 64 ビットでは動作しません。Cleanmgr はcleanmgr.exe /sageset:3
、ごみ箱をクリーンアップするように構成されています。
上記のように使用するCreateProcess
と、XP ではごみ箱が空になりますが、Win7 では空になりません。
実行中cleanmgr
ですが、ごみ箱には影響しません。
なんで ?