Récupérer le nom d'un fichier à partir de l'exploratur windows

Messages postés
11
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
8 mai 2003
- - Dernière réponse : binet1
Messages postés
28
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
7 janvier 2009
- 16 nov. 2008 à 19:56
Salut à tous,

je voudrais faire un truc mais je sais pas si c'est possible:

je voudrais, à partir d'une application VB, lancer l'explorateur Windows (avec la commande SHELL, jusque là ça va) et récupérer le nom d'un fichier sélectionné à partir de l'explorateur

Par exemple, on lance l'explorateur puis on clique sur un fichier et ça retourne le nom de ce fichier.

Est - ce que c'est réalisable?
Si oui, comment?

Merci d'avance.

Bouddhi, le petit Bouddha
Afficher la suite 

2 réponses

Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
0
Merci
Bonjour,

Ci-dessous 2 exemples de récupération de fichiers via IE:

' Script EuroFactor_Sauvegarde Rapports-SLIFAC32.vbs
'
' Copie des fichiers de la veille
' dans c:\Rapports-SLIFAC32\Sauvegarde
' Cette procédure est associée au Planificateur de tâches

Dim jour, jour1, jour2
Dim fso, wSrce, wDest
Dim dossier, fichier, fichiers
Dim WshShell, strList, verif1

wSrce = "c:\Rapports-SLIFAC32"
wDest = "c:\Rapports-SLIFAC32\Sauvegarde"
'''
''' Création des variables de dates
'''
jour = DatePart("w", Date)
jour1 = Array("Samedi","Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi")
jour2 = jour1(jour)

'''
''' Delete des fichiers en fonction du jour
'''
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder(wSrce)
Set fichiers = Dossier.Files
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\WINNT\EXPLORER.EXE /n,/e," & wSrce
WScript.Sleep(1000)

For Each fichier in fichiers
Select Case jour2
Case "Lundi"
IF Left(fichier.name,5) = "Vendr" Then
strList = strList & vbcrlf & fichier
fso.MoveFile fichier, wDest
End If
Case "Mardi"
IF Left(fichier.name,5) = "Lundi" Then
strList = strList & vbcrlf & fichier
fso.MoveFile fichier, wDest
End If
Case "Mercredi"
IF Left(fichier.name,5) = "Mardi" Then
strList = strList & vbcrlf & fichier
fso.MoveFile fichier, wDest
End If
Case "Jeudi"
IF Left(fichier.name,5) = "Mercr" Then
strList = strList & vbcrlf & fichier
fso.MoveFile fichier, wDest
End If
Case "Vendredi"
IF Left(fichier.name,5) = "Jeudi" Then
strList = strList & vbcrlf & fichier
fso.MoveFile fichier, wDest
End If
End Select
Next

'Suppression des fichiers dont la date de modification
'est antérieure de 40 jours de la date machine

Dim fdate, fname, dtDiffFile, fic, strFile, verif2
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder(wDest)
Set fichiers = Dossier.Files

For Each fichier in fichiers
Set fic = fso.GetFile(fichier)
fdate = fic.DateLastModified
fname = fic.Name
dtDiffFile = DateDiff("d", Now, fdate)
If dtDiffFile <= -40 Then
fso.DeleteFile(wDest & fname)
strFile = strFile & vbcrlf & fname & " " & fdate
End If
Next

WScript.Sleep(1000)
WshShell.SendKeys "%{F4}",true
WshShell.Run "C:\WINNT\EXPLORER.EXE /n,/e," & wDest
WScript.Sleep(2000)
WshShell.SendKeys "%{F4}",true
Verif1 = WshShell.Popup(strList & vbcrlf & vbcrlf , 10, "Fichiers déplacés dans le répertoire : " & wDest)Verif2 WshShell.Popup(strFile & vbcrlf & vbcrlf , 10, "Fichiers supprimés du répertoire : " & wDest)

Dim fso, fic, dossier, fichier, fichiers, nbre, result, MonFic
Dim jour, jour1, jour2, Verif, WshShell, Name

Path2 = "c:\Rapports-CARTIER\Compte-rendu EuroFactor pour Ph. CARTIER.txt"
Name = "Compte-rendu EuroFactor pour Ph. CARTIER.txt"
wWeek = "c:\Rapports-CARTIER"
wDest = "c:\Rapports-CARTIER\Sauvegarde"
Week = "CHRONOLOGIE SAUVEGARDE WEEK-END EUROFACTOR.xls"

expl1 = "g:\Rapports 01 Lundi à Mardi"
expl2 = "g:\Rapports 02 Mardi à Mercredi"
expl3 = "g:\Rapports 03 Mercredi à Jeudi"
expl4 = "g:\Rapports 04 Jeudi à Vendredi"
expl5 = "g:\Rapports 05 Vendredi à Samedi"
expl6 = "g:\Rapports 06 Sauvegardes Week-End"

jour = DatePart("w", Date)
jour1 = Array("Samedi","Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi")
jour2 = jour1(jour)

Select Case jour2
Case "Lundi"
Path1 = expl5
Case "Mardi"
Path1 = expl1
Case "Mercredi"
Path1 = expl2
Case "Jeudi"
Path1 = expl3
Case "Vendredi"
Path1 = expl4
Case "Samedi"
Path1 = expl5
End Select

Set Fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder(Path1)
Set fichiers = Dossier.Files
Set result = fso.CreateTextFile(path2, True)
result.WriteBlankLines 1

For Each fichier in fichiers
Set fic = fso.GetFile(fichier)
fdate = fic.DateLastModified
fname = fic.name
nbre = nbre + 1
result.WriteLine(fdate & " " & fname)
Next

result.WriteBlankLines 2
result.WriteLine("Téléexploitation '"&Path1&"' contient "&nbre&" fichiers")
result.WriteLine("Date de ce contrôle: " & Now)
result.Close

Set MonFic = Fso.OpenTextFile(path2, 1)
Contenu = MonFic.ReadAll

Set WshShell = WScript.CreateObject("WScript.Shell")
Verif = WshShell.Popup("Le fichier ' " & Path2 & " ' contient :"&vbCrLf&"" & Contenu, 10, "Contrôle journalier EUROFACTOR")

'Sauvegarde du fichier et suppression des
'fichiers dont la date de modification est
'antérieure de 5 jours de la date machine

Dim mm, jjmmaa
mm = month(now)
IF Len(mm) = 1 Then
mm = "0" & mm
End If
jjmmaa = Left(Date,2) & "_" & mm & "_" & Right(Date,2)

Dim fdate, fname, dtDiffFile, NewName
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder(wDest)
Set fichiers = Dossier.Files

NewName = jjmmaa & "_" & Name
fso.CopyFile Path2, wDest & NewName

If jour2 = "Samedi" Then
Dim NewWeek
NewWeek = jjmmaa & "_" & Week
fso.CopyFile expl6 & Week, wWeek
fso.CopyFile expl6 & Week, wDest & NewWeek
End If

For Each fichier in fichiers
Set fic = fso.GetFile(fichier)
fdate = fic.DateLastModified
fname = fic.Name
dtDiffFile = DateDiff("d", Now, fdate)
If dtDiffFile <= -5 Then
fso.DeleteFile(wDest & fname)
End If
Next

Set fso = Nothing
Messages postés
28
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
7 janvier 2009
0
Merci
comment ça permet de récupéré le nom à partir de l'explorateur windows???