[VBS] Script pour récupérer l'adresse complète d'un fichier [Résolu]

Signaler
Messages postés
4
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
16 novembre 2006
-
Messages postés
4
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
16 novembre 2006
-
Bonjour,

Je débute en VB et je dois écrire un script VBS pour compléter un programme de pilotage d'automate. Je vais essayer d'être le plus clair possible :
Le programme de l'automate fait appel à une liste de travail (fichier texte avec une extension *.gwl) qui se trouve par exemple dans un dossier "Worklist", sur le bureau.
Je peux entrer le nom et le chemin du fichier .gwl par défault dans le programme, mais dans ce cas, il faut à chaque lancement du programme nommer la liste de travail avec le même nom et la placer au même endroit.
Pour plus de "convivialité", je veux mettre l'adresse et le nom du fichier en variables (mon problème ne se situe pas là). Pour ce faire, j'inserre une ligne de commande qui lance un script VBS (fichier au format *.vbs).
C'est là que je coince : je veux qu'au lancement de ce script s'affiche une boîte de dialogue contenant un bouton "Parcourir" qui permette d'ouvrir un "openfiledialog" afin de récupérer le nom du fichier (et le chemin).
J'ai installé Visual Basic 2005 Express Edition, j'ai "dessiné" mon formulaire, inséré le code (par encore au point en ce qui concerne l'openfiledialog), mais je ne sais pas comment enregistrer tout ça en fichier .vbs. Est-ce possible ? Comment faire ?
Sinon, j'ai la possibilité de lancer un .exe. Comment est-ce que je peux transformer mon projet en *.exe ?

Merci de votre attention et pour vos réponses,

Cordialement,

Amanck

6 réponses

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour à tous....

Le CommonDialog existe aussi en vbs.
 Il y a plein de variantes possibles.

Ex:
Dim var1, var2, var3
var1 = "D:\Test1"  'disque ou disque/répertoire pour se positionner
var2 = "commentaire de la fenêtre"
var3 = "|*.vbs|"   'tous les fichiers .xls (ou *.txt ou *.*)





MsgBox BrowseForFile(var1, var2 & var3)
' pstrPath = var1 le chemin
' pstrFilter = var2 soit le type de fichiers recherché



Function BrowseForFile(pstrPath, pstrFilter)
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = pstrFilter
objDialog.InitialDir = pstrPath
objDialog.Flags = &H80000 + &H4 + &H8   'position de la fenêtre
intResult = objDialog.ShowOpen         
BrowseForFile = objDialog.FileName 'récupération du nom du fichier sélectionné
Set objDialog = Nothing
end function


jean-marc
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour à tous....

Bonjour  ,

J'avais bien précisé qu'il y a plusieurs variantes !!!
Il suffit de demander.......

'Ce script permet d'ouvrir une fenêtre Explorer
'et affiche le nom du fichier selectionné par l'utilisateur
Dim WshShell, objDlg
Set WshShell = wscript.CreateObject("wscript.Shell")
Set objDlg = wscript.CreateObject("MSComDlg.CommonDialog")



'choix de l'affichage, l'option Filter peut-être est mise en commentaire (' ou rem)
objDlg.Filter = "All Files (*.*)|*.*|coucou Files (*.txt)|*.txt|jean-marc"
' objDlg.Filter = "All Files (*.*)|*.*|coucou Files (*.txt)|*.txt|jean-marc"



'Positionnement de la fenêtre
objDlg.FilterIndex = 2
objDlg.MaxFileSize = 260
objDlg.CancelError = true
objDlg.ShowOpen



MsgBox "Répertoire et Fichier: " & objDlg.FileName &vbCrLf&_
       "Fichier: " & Mid(objDlg.FileName, InStrRev(objDlg.FileName, "") + 1)



Set WshShell = Nothing
Set objDlg = Nothing
Set fso = Nothing




jean-marc
Messages postés
4
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
16 novembre 2006

Merci Jean-Marc.

Cela fait plusieurs jours que je cherche des bouts de codes partout pour voir comment écrire mon code.
C'est exactement ce que je cherchais à faire. Il me reste maintenant à comprendre chaque ligne pour éviter de reposer la même question dans 6 mois ...

Merci encore

Amanck
Messages postés
4
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
16 novembre 2006

Bonjour,

Je reviens à la charge ...

J'ai recopié le code, fait des tests en changeant des bouts de code pour voir ce que cela produit (c'est en général comme ça et par des recherches sur le net que j'apprends à programmer...). J'ai donc fait d'autres recherches sur le net et j'ai une nouvelle question au sujets du code :

"objDialog.Flags = &H80000 + &H4 + &H8   'position de la fenêtre"
comme le dit le commentaire, cette ligne permet de positionner la fenêtre. J'ai vu par ailleurs le code suivant : "objDialog.Flags = &h1a04" qui permet d'ouvrir la fenêtre de recherche en mode "multi-sélection". Le premier code ne correspondrait-il pas à de la sélection simple ? Quand j'essaye de modifier les valeurs &H..., la fenêtre reste toujours à la même place (en haut à gauche de l'écran).
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Re,

le "set fso = nothing" est de trop....copier/coller.....

jean-marc
Messages postés
4
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
16 novembre 2006

Merci pour ces précisions.

Amanck