Dá no mesmo, mas apenas a título de curiosidade.
Código: Selecionar todos
#define SHERB_NOCONFIRMATION 0x00000001
#define SHERB_NOPROGRESSUI 0x00000002
#define SHERB_NOSOUND 0x00000004
FUNCTION wapi_EmptyTrash( cPath )
LOCAL xResult
xResult := CallDllStd( "Shell32.dll", "SHEmptyRecycleBinA", NIL, cPath, SHERB_NOCONFIRMATION + SHERB_NOPROGRESSUI + SHERB_NOSOUND )
RETURN xResult
Deixei separado para o caso de usar pra outras coisas, no estilo que coloquei naquela classe pra RMChart.
Código: Selecionar todos
FUNCTION CallDllStd( cDll, cName, ... )
LOCAL nHandle, xResult
nHandle := hb_LibLoad( cDll )
xResult := hb_DynCall( { cName, nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
hb_LibFree( nHandle )
RETURN xResult
Só pesquisei depois que postou aqui.
E peguei informação daqui:
https://docs.microsoft.com/en-us/window ... ecyclebina
Parece que dá pra escolher se quer limpar a lixeira toda, ou apenas a lixeira referente a um disco.
No meu teste, o arquivo excluído era de D:, e ao indicar "C:\" não limpou, só limpou indicando "D:\" ou nenhum.
Nota:
só não sei se é uma boa fazer isso no aplicativo, já que o usuário pode querer alguma coisa de volta.