AccueilCodes sourcesFreewaresArticlesRéponsesRechercheVotre avisNewsMon blogLiensContact
Dimanche 25 Janvier 2026

Valid HTML 4.01 Transitional

126 codes sources48 articles77 news24 Liens15 avis9 réponses.
Comment envoyer un fichier dans la corbeille sous Windows XP ?

Ce code est l'oeuvre de Francis MOREL.

// Supprime un fichier
// cFich [in] : Pathname du fichier à supprimer
// FlgUndo [in] : Vrai pour transfert dans la corbeille
// Si la touche Maj est enfoncé on détruit directement le fichier qque soit le flag
// FlgYes [in] : Destruction directe sans demande de confirmation
// Renvoie Vrai si destruction effective
//
PROCEDURE SHFileDelete(cFich,FlgUndo=Vrai,FlgYes=Faux)

szName est une chaîne ASCIIZ sur 260 = cFich
iRet est un entier

// typedef struct _SHFILEOPSTRUCT {
// HWND hwnd;
// UINT wFunc;
// LPCTSTR pFrom;
// LPCTSTR pTo;
// FILEOP_FLAGS fFlags;
// BOOL fAnyOperationsAborted;
// LPVOID hNameMappings;
// LPCTSTR lpszProgressTitle;
// } SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;

SHFILEOPSTRUCTA est une structure
        hwnd est un entier
        wFunc est un entier sans signe // Normalement entier sur 2, entier pour alignement
        pFrom est un entier
        pTo est un entier
        fFlags est un entier // Normalement entier sur 2, entier pour alignement
        fAnyOperationsAborted est un booléen
        hNameMappings est un entier
        lpszProgressTitle est un entier
FIN

sFileOp est un SHFILEOPSTRUCTA
sFileOp:hwnd=Handle()
sFileOp:wFunc=0x0003 // FO_DELETE
sFileOp:pFrom=&szName
sFileOp:pTo=Null
SI FlgYes ALORS sFileOp:fFlags = 0x0010 // FOF_NOCONFIRMATION
SI PAS ToucheEnfoncée(teShift) OU PAS FlgUndo ALORS
        sFileOp:fFlags += 0x0040 // FOF_ALLOWUNDO
SINON
        FlgUndo=Faux
FIN
sFileOp:hNameMappings=Null
sFileOp:lpszProgressTitle=Null

iRet=API("shell32.dll","SHFileOperationA",&sFileOp)
SI iRet=0 ALORS
        // Pour tester si suppression cancelée
        SI fRep(cFich,frFichier)<>"" ALORS iRet=-1
FIN
RENVOYER (iRet=0)


Liste des codes sources
®2006 - codel5g.com