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

Amanck 4 Messages postés mercredi 5 avril 2006Date d'inscription 16 novembre 2006 Dernière intervention - 13 nov. 2006 à 14:36 - Dernière réponse : Amanck 4 Messages postés mercredi 5 avril 2006Date d'inscription 16 novembre 2006 Dernière intervention
- 16 nov. 2006 à 09:39
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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 13 nov. 2006 à 16:29
3
Merci
 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

Merci cs_JMO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_JMO
Meilleure réponse
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 15 nov. 2006 à 12:22
3
Merci
 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

Merci cs_JMO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_JMO
Amanck 4 Messages postés mercredi 5 avril 2006Date d'inscription 16 novembre 2006 Dernière intervention - 13 nov. 2006 à 17:00
0
Merci
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
Commenter la réponse de Amanck
Amanck 4 Messages postés mercredi 5 avril 2006Date d'inscription 16 novembre 2006 Dernière intervention - 15 nov. 2006 à 11:25
0
Merci
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).
Commenter la réponse de Amanck
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 15 nov. 2006 à 12:24
0
Merci
 Re,

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

jean-marc
Commenter la réponse de cs_JMO
Amanck 4 Messages postés mercredi 5 avril 2006Date d'inscription 16 novembre 2006 Dernière intervention - 16 nov. 2006 à 09:39
0
Merci
Merci pour ces précisions.

Amanck
Commenter la réponse de Amanck

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.