Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ENVOYER UN FICHIER À LA CORBEILLE DE WINDOWS


Information sur la source

Catégorie :API Niveau : Débutant Date de création : 01/10/2002 Date de mise à jour : 01/10/2002 17:00:20 Vu : 1 607

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Pour ne pas être aussi direct que la méthode "KILL", c'est pas du top, mais c'est pratique et ça peut aider les débutants comme ça m'a aidé...
Copiez ce code, placez le dans un nouveau module et utilisez la fonction: Corbeillation...
 

Source

  • ' Depuis votre programme commandez la fonction:
  • 'Corbeillation ("c:\machin\AFAC.bmp")... avec bien sûr n'importe quel autre fichier...
  • ' Et vous aurez la boite vous proposant de jeter ce fichier à la
  • ' corbeille (si vs cliquez sur OUI)
  • Private Type Fichier
  • hwnd As Long
  • wFunc As Long
  • pFrom As String
  • pTo As String
  • fFlags As Integer
  • fAnyOperationsAborted As Boolean
  • hNameMappings As Long
  • lpszProgressTitle As String
  • End Type
  • 'API utilisée pour jeter des fichiers à la corbeille
  • Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As Fichier) As Long
  • 'Constantes nécessaires
  • Private Const FO_DELETE = &H3
  • Private Const FOF_ALLOWUNDO = &H40
  • Public Function Corbeillation(Fic As String) As Boolean
  • Dim FicAvirer As Fichier
  • Dim lReturn As Long
  • If Dir$(Fic) = "" Then Exit Function
  • With FicAvirer
  • .wFunc = FO_DELETE
  • .pFrom = Fic 'fichier sélectionné
  • .fFlags = FOF_ALLOWUNDO
  • End With
  • 'Jette le fichier à la poubelle
  • lReturn = SHFileOperation(FicAvirer)
  • End Function
' Depuis votre programme commandez la fonction:
'Corbeillation ("c:\machin\AFAC.bmp")... avec bien sûr n'importe quel autre fichier...
' Et vous aurez la boite vous proposant de jeter ce fichier à la
' corbeille (si vs cliquez sur OUI)

Private Type Fichier
     hwnd As Long
     wFunc As Long
     pFrom As String
     pTo As String
     fFlags As Integer
     fAnyOperationsAborted As Boolean
     hNameMappings As Long
     lpszProgressTitle As String
End Type
'API utilisée pour jeter des fichiers à la corbeille
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As Fichier) As Long
'Constantes nécessaires
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40

Public Function Corbeillation(Fic As String) As Boolean
Dim FicAvirer As Fichier
Dim lReturn As Long
If Dir$(Fic) = "" Then Exit Function
With FicAvirer
    .wFunc = FO_DELETE
    .pFrom = Fic     'fichier sélectionné
    .fFlags = FOF_ALLOWUNDO
End With
'Jette le fichier à la poubelle
lReturn = SHFileOperation(FicAvirer)
End Function

Commentaires et avis

signaler à un administrateur
Commentaire de DARKSIDIOUS le 01/10/2002 18:01:13 administrateur CS

Très pratique, merci

DARK SIDIOUS

signaler à un administrateur
Commentaire de Alan71 le 01/10/2002 19:54:21

Dja vu !

(mé ca peut être pratique sans koi !)

signaler à un administrateur
Commentaire de Manu_12 le 05/03/2004 18:47:25

Petit complément d'info sur cette fonction (SHFile operation). On peux supprimer plusieurs fichiers d'un coup.
Il faut pour ca que ta variable de type string soit composé des noms complets de fichiers espacés d'un caractère null (chr(0)) et que la chaine soit terminée par un caractère null supplémentaire
exemple :

private suppFiles()
'lvlistview etant une listview avec multiselection
dim i as integer, Dfiles as string
'passe tous les éléments de la liste pour trouver ceux selectionnés
For i = 1 To lvListView.ListItems.Count
'si la condition est vrai (sélectionné) renvoi le contenu de "l'item" qui contient le chemin complet
If lvListView.ListItems(nblist).Selected = True Then Dfiles = Dfiles & lvListView.ListItems.Item(nblist) & chr(0)
next i
'rajotue un caractère null a la fin
Dfiles = Dfiles & chr(0)
'passe a la fonction corbeillation la chaine ainsi constitué
Corbeillation (Dfiles)
end sub

NOTA :
Par contre l'isntruction if dir (fic) = "" devietn caduque dans cette hypothèse.
Pour garder ce garde fou vous pouvez :
- soit :
utiliser la fonction  If dir$(lvListView.ListItems.Item(nblist) ) =""
dans la "sub" ci dessus et ne pas ajotuer la chaine si le fichier n'existe pas,
- soit :
créer un tableau a l'interieur de la fonction "corbeillation" a partir de la fonction split
split (fic,chr(0))
Cette fonction créé un tableau avec une entrée pour chaque chaine.
A partir de la on peux tester individuellement toutes les entrées du tableau par la fonction dir()
ex :
for i = lbound(fic) to ubound(fic)
if dir(fic(i))="" then exit function
next i

heu..c pigé ? :)

signaler à un administrateur
Commentaire de aligator le 30/05/2008 15:00:47

Bonjour,
on peut aussi ainsi déposer un folder complet dans la corbeille, il suffit de suprimer la ligne :

If Dir$(Fic) = "" Then Exit Function

JP

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.