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

cs_bouddhi Messages postés 11 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 8 mai 2003 - 14 févr. 2003 à 10:49
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

2 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
14 févr. 2003 à 11:21
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
0
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
comment ça permet de récupéré le nom à partir de l'explorateur windows???
0
Rejoignez-nous