1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| 'le programme prend 1 commutateur
' - le type d'opération (un entier entre 1 et 2)
Const OP_ENLEVER = 1
Const OP_AJOUTER_EXTENSION = 2
'déclaration de l'API
Declare Function GetForegroundWindow Lib "user32.dll" () As Long 'cette fonction va btenir le handle de l'explorer en cours
Sub Main()
'si l'appli est déjà lance on la ferme
If App.PrevInstance Then End
'création des objets
On Error Resume Next
'pour la bilbiothèque scripting
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'pour l'objet shell
Dim SHAp, Wins, SFV, IE, SI, FI, IFinal
Set SHAp = CreateObject("Shell.Application")
If Err.Number <> 0 Then
MsgBox "Manque de ressources " & Chr(10) & "ou" & Chr(10) & "problème d'installation de la bibliothèque Scripting."
End
End If
Err.Clear
'récupération de la ligne de commande
Dim arg As Variant, str$
str = Command()
'sortie si celle-ci est vide
If str = "" Then End
'on récupère les différents commutateurs
arg = Split(Command(), "--")
'on va d'abord obtenir l'objet window de shell correspondant au handle de la fenêtre active
Dim hand As Long
hand = GetForegroundWindow() 'handle de la fenêtre sur laquelle l'utilisateur travaille
'on va parcourir la collection windows de shell et lire les différents handle pour identifier l'obet window
'qui nous intéresse
Set Wins = SHAp.Windows ' Shell.Windows
For Each IE In Wins
If IE.hWnd = hand Then
Exit For
End If
Next IE
Set Wins = Nothing
'obtention de la collection des fichiers sélectionnés
Dim col As New Collection
'à partir de IE on obtient les fichiers sélectionnés
Set SFV = IE.Document ' ShellFolderView
Set SI = SFV.SelectedItems ' SelectedItems collection
For Each FI In SI ' FolderItem
col.Add fso.getfile(FI.Path) 'on ajoute chaque fichier sélectionné à notre collection
Next FI
Set SI = Nothing
Set SFV = Nothing
'choix de l'action à mener
Dim fil As Object
Select Case arg(1)
Case OP_ENLEVER
'"enlever des mots"
'procédure de retrait de mots
'obtention du terme à retirer
Dim Mots$
Mots = InputBox("Quels mots souhaitez vous retirer?")
'arrêt de la procédure si l'utilisateur clique sur annuler de la boîte de dialogue inputbox
If Mots = "" Then End
'on remplace les noms des fichiers
For Each fil In col ' FolderItem
fil.Name = Replace(fil.Name, Mots, " ", , , vbTextCompare)
Next fil
Case OP_AJOUTER_EXTENSION
'"Ajouter une extension"
'ajoute une extension aux fichiers
'obtention de l'extension à ajouter
Dim ext$
ext = InputBox("Quels extension souhaitez vous ajouter?")
'arrêt de la procédure si l'utilisateur clique sur annuler de la boîte de dialogue inputbox
If ext = "" Then End
'on ajoute l'extension
For Each fil In col ' FolderItem
'et on remplace
fil.Name = fil.Name & "." & ext
Next fil
End Select
End Sub |
Partager