Le script suivant permet de sélectionner un fichier, mais ce n'est pas une
boîte de sélection très pratique (on ne peut pas filtrer sur une extension
par exemple)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
(WINDOW_HANDLE, "Choix du fichier : ", SHOWFILES,
cSourceFolder)
On Error Resume Next
Set objFolderItem = objFolder.Self
If Not Err Then
wscript.echo objFolderItem.Path
End IF
Comment avoir accès à la boîte de sélection de fichiers usuelle de windows ?
Est-ce possible ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Claude BELLAMY
Dans le message news:e$MOn% , Christophe CHENAVIER s'est ainsi exprimé:
Bonjour,
Le script suivant permet de sélectionner un fichier, mais ce n'est pas une boîte de sélection très pratique (on ne peut pas filtrer sur une extension par exemple)
Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder _ (WINDOW_HANDLE, "Choix du fichier : ", SHOWFILES, cSourceFolder) On Error Resume Next Set objFolderItem = objFolder.Self If Not Err Then wscript.echo objFolderItem.Path End IF
Comment avoir accès à la boîte de sélection de fichiers usuelle de windows ? Est-ce possible ?
Oui, mais en ajoutant "des choses" !
Personnellement, je passe par un contrôle ActiveX (créé en VB) qui fait appel à la fonction "GetOpenFileName" de la dll "comdlg32.dll" Dans mon ActiveX "fourre-tout" "JCB.OCX", j'ai inclus une commande OpenFile(ByVal initfile As String, ByVal Filter As String, _ ByVal defExt As String, ByVal Title As String) As String que j'utilise dans mes VBS
A titre d'exmple, et pour faire plus simple, je viens de créer un contrôle "dialog.ocx" (enregistré comme composant "dialog.file") qui ne contient que cette fonction.
Il est librement téléchargeable ici : http://www.bellamyjc.org/download/dialog.zip (7 ko) Le zip contient le .ocx et toutes les sources (.ctl, .vbp, ...) que tu pourras adapter à ta convenance.
Pour le (re)compiler, VBCCE (gratuit) suffit : http://www.bellamyjc.org/fr/vbsgeneralites.html#VBCCE
Quant à son utilisation dans un VBS, elle est très simple.
Il faut tout d'abord enregistrer l'ActiveX (une fois pour toutes) : regsvr32 dialog.ocx (c'est fait automatiquement si on recompile le programme)
Tu pourras modifier p.ex. la ligne suivante : ofn.FLAGS = OFN_EXPLORER + OFN_FILEMUSTEXIST + OFN_HIDEREADONLY + OFN_PATHMUSTEXIST qui signifie : - nouvelle interface Explorateur de fichier (celle de W2K/XP) - le fichier doit exister - la case "lecture seule" est masquée - le chemin doit exister
Tu pourras aussi (si tu veux) ajouter la fonction "GetSaveFileName" pour enregistrer un fichier (la structure est strictement identique) : Private Declare Function GetSaveFileName Lib "comdlg32.dll" _ Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long ....
NB: Dans le source, j'ai défini toutes les constantes utilisables (OFN_OVERWRITEPROMPT, OFN_NOVALIDATE, OFN_ALLOWMULTISELECT, OFN_CREATEPROMPT,...)
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org http://www.bellamyjc.org *
Dans le message news:e$MOn%23NXEHA.2840@TK2MSFTNGP11.phx.gbl ,
Christophe CHENAVIER <c.chenavier_@_corwin.fr> s'est ainsi exprimé:
Bonjour,
Le script suivant permet de sélectionner un fichier, mais ce n'est
pas une boîte de sélection très pratique (on ne peut pas filtrer sur
une extension par exemple)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
(WINDOW_HANDLE, "Choix du fichier : ", SHOWFILES,
cSourceFolder)
On Error Resume Next
Set objFolderItem = objFolder.Self
If Not Err Then
wscript.echo objFolderItem.Path
End IF
Comment avoir accès à la boîte de sélection de fichiers usuelle de
windows ? Est-ce possible ?
Oui, mais en ajoutant "des choses" !
Personnellement, je passe par un contrôle ActiveX (créé en VB) qui fait
appel à la fonction "GetOpenFileName" de la dll "comdlg32.dll"
Dans mon ActiveX "fourre-tout" "JCB.OCX", j'ai inclus une commande
OpenFile(ByVal initfile As String, ByVal Filter As String, _
ByVal defExt As String, ByVal Title As String) As String
que j'utilise dans mes VBS
A titre d'exmple, et pour faire plus simple, je viens de créer un contrôle
"dialog.ocx" (enregistré comme composant "dialog.file") qui ne contient que
cette fonction.
Il est librement téléchargeable ici :
http://www.bellamyjc.org/download/dialog.zip (7 ko)
Le zip contient le .ocx et toutes les sources (.ctl, .vbp, ...) que tu
pourras adapter à ta convenance.
Pour le (re)compiler, VBCCE (gratuit) suffit :
http://www.bellamyjc.org/fr/vbsgeneralites.html#VBCCE
Quant à son utilisation dans un VBS, elle est très simple.
Il faut tout d'abord enregistrer l'ActiveX (une fois pour toutes) :
regsvr32 dialog.ocx
(c'est fait automatiquement si on recompile le programme)
Tu pourras modifier p.ex. la ligne suivante :
ofn.FLAGS = OFN_EXPLORER + OFN_FILEMUSTEXIST + OFN_HIDEREADONLY +
OFN_PATHMUSTEXIST
qui signifie :
- nouvelle interface Explorateur de fichier
(celle de W2K/XP)
- le fichier doit exister
- la case "lecture seule" est masquée
- le chemin doit exister
Tu pourras aussi (si tu veux) ajouter la fonction "GetSaveFileName" pour
enregistrer un fichier
(la structure est strictement identique) :
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
....
NB: Dans le source, j'ai défini toutes les constantes utilisables
(OFN_OVERWRITEPROMPT, OFN_NOVALIDATE, OFN_ALLOWMULTISELECT,
OFN_CREATEPROMPT,...)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org Jean-Claude.Bellamy@wanadoo.fr *
JC.Bellamy@free.fr
Dans le message news:e$MOn% , Christophe CHENAVIER s'est ainsi exprimé:
Bonjour,
Le script suivant permet de sélectionner un fichier, mais ce n'est pas une boîte de sélection très pratique (on ne peut pas filtrer sur une extension par exemple)
Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder _ (WINDOW_HANDLE, "Choix du fichier : ", SHOWFILES, cSourceFolder) On Error Resume Next Set objFolderItem = objFolder.Self If Not Err Then wscript.echo objFolderItem.Path End IF
Comment avoir accès à la boîte de sélection de fichiers usuelle de windows ? Est-ce possible ?
Oui, mais en ajoutant "des choses" !
Personnellement, je passe par un contrôle ActiveX (créé en VB) qui fait appel à la fonction "GetOpenFileName" de la dll "comdlg32.dll" Dans mon ActiveX "fourre-tout" "JCB.OCX", j'ai inclus une commande OpenFile(ByVal initfile As String, ByVal Filter As String, _ ByVal defExt As String, ByVal Title As String) As String que j'utilise dans mes VBS
A titre d'exmple, et pour faire plus simple, je viens de créer un contrôle "dialog.ocx" (enregistré comme composant "dialog.file") qui ne contient que cette fonction.
Il est librement téléchargeable ici : http://www.bellamyjc.org/download/dialog.zip (7 ko) Le zip contient le .ocx et toutes les sources (.ctl, .vbp, ...) que tu pourras adapter à ta convenance.
Pour le (re)compiler, VBCCE (gratuit) suffit : http://www.bellamyjc.org/fr/vbsgeneralites.html#VBCCE
Quant à son utilisation dans un VBS, elle est très simple.
Il faut tout d'abord enregistrer l'ActiveX (une fois pour toutes) : regsvr32 dialog.ocx (c'est fait automatiquement si on recompile le programme)
Tu pourras modifier p.ex. la ligne suivante : ofn.FLAGS = OFN_EXPLORER + OFN_FILEMUSTEXIST + OFN_HIDEREADONLY + OFN_PATHMUSTEXIST qui signifie : - nouvelle interface Explorateur de fichier (celle de W2K/XP) - le fichier doit exister - la case "lecture seule" est masquée - le chemin doit exister
Tu pourras aussi (si tu veux) ajouter la fonction "GetSaveFileName" pour enregistrer un fichier (la structure est strictement identique) : Private Declare Function GetSaveFileName Lib "comdlg32.dll" _ Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long ....
NB: Dans le source, j'ai défini toutes les constantes utilisables (OFN_OVERWRITEPROMPT, OFN_NOVALIDATE, OFN_ALLOWMULTISELECT, OFN_CREATEPROMPT,...)
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org http://www.bellamyjc.org *
Christophe CHENAVIER
Merci beaucoup Jean Claude !
"Jean-Claude BELLAMY" a écrit
Personnellement, je passe par un contrôle ActiveX (créé en VB) qui fait appel à la fonction "GetOpenFileName" de la dll "comdlg32.dll" Dans mon ActiveX "fourre-tout" "JCB.OCX", j'ai inclus une commande OpenFile(ByVal initfile As String, ByVal Filter As String, _ ByVal defExt As String, ByVal Title As String) As String que j'utilise dans mes VBS
A titre d'exmple, et pour faire plus simple, je viens de créer un contrôle "dialog.ocx" (enregistré comme composant "dialog.file") qui ne contient que
cette fonction.
Il est librement téléchargeable ici : http://www.bellamyjc.org/download/dialog.zip (7 ko) Le zip contient le .ocx et toutes les sources (.ctl, .vbp, ...) que tu pourras adapter à ta convenance.
Pour le (re)compiler, VBCCE (gratuit) suffit : http://www.bellamyjc.org/fr/vbsgeneralites.html#VBCCE
Quant à son utilisation dans un VBS, elle est très simple.
Il faut tout d'abord enregistrer l'ActiveX (une fois pour toutes) : regsvr32 dialog.ocx (c'est fait automatiquement si on recompile le programme)
Tu pourras modifier p.ex. la ligne suivante : ofn.FLAGS = OFN_EXPLORER + OFN_FILEMUSTEXIST + OFN_HIDEREADONLY + OFN_PATHMUSTEXIST qui signifie : - nouvelle interface Explorateur de fichier (celle de W2K/XP) - le fichier doit exister - la case "lecture seule" est masquée - le chemin doit exister
Tu pourras aussi (si tu veux) ajouter la fonction "GetSaveFileName" pour enregistrer un fichier (la structure est strictement identique) : Private Declare Function GetSaveFileName Lib "comdlg32.dll" _ Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long ....
NB: Dans le source, j'ai défini toutes les constantes utilisables (OFN_OVERWRITEPROMPT, OFN_NOVALIDATE, OFN_ALLOWMULTISELECT, OFN_CREATEPROMPT,...)
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org http://www.bellamyjc.org *
Merci beaucoup Jean Claude !
"Jean-Claude BELLAMY" a écrit
Personnellement, je passe par un contrôle ActiveX (créé en VB) qui fait
appel à la fonction "GetOpenFileName" de la dll "comdlg32.dll"
Dans mon ActiveX "fourre-tout" "JCB.OCX", j'ai inclus une commande
OpenFile(ByVal initfile As String, ByVal Filter As String, _
ByVal defExt As String, ByVal Title As String) As String
que j'utilise dans mes VBS
A titre d'exmple, et pour faire plus simple, je viens de créer un contrôle
"dialog.ocx" (enregistré comme composant "dialog.file") qui ne contient
que
cette fonction.
Il est librement téléchargeable ici :
http://www.bellamyjc.org/download/dialog.zip (7 ko)
Le zip contient le .ocx et toutes les sources (.ctl, .vbp, ...) que tu
pourras adapter à ta convenance.
Pour le (re)compiler, VBCCE (gratuit) suffit :
http://www.bellamyjc.org/fr/vbsgeneralites.html#VBCCE
Quant à son utilisation dans un VBS, elle est très simple.
Il faut tout d'abord enregistrer l'ActiveX (une fois pour toutes) :
regsvr32 dialog.ocx
(c'est fait automatiquement si on recompile le programme)
Tu pourras modifier p.ex. la ligne suivante :
ofn.FLAGS = OFN_EXPLORER + OFN_FILEMUSTEXIST + OFN_HIDEREADONLY +
OFN_PATHMUSTEXIST
qui signifie :
- nouvelle interface Explorateur de fichier
(celle de W2K/XP)
- le fichier doit exister
- la case "lecture seule" est masquée
- le chemin doit exister
Tu pourras aussi (si tu veux) ajouter la fonction "GetSaveFileName" pour
enregistrer un fichier
(la structure est strictement identique) :
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
....
NB: Dans le source, j'ai défini toutes les constantes utilisables
(OFN_OVERWRITEPROMPT, OFN_NOVALIDATE, OFN_ALLOWMULTISELECT,
OFN_CREATEPROMPT,...)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org Jean-Claude.Bellamy@wanadoo.fr *
JC.Bellamy@free.fr
Personnellement, je passe par un contrôle ActiveX (créé en VB) qui fait appel à la fonction "GetOpenFileName" de la dll "comdlg32.dll" Dans mon ActiveX "fourre-tout" "JCB.OCX", j'ai inclus une commande OpenFile(ByVal initfile As String, ByVal Filter As String, _ ByVal defExt As String, ByVal Title As String) As String que j'utilise dans mes VBS
A titre d'exmple, et pour faire plus simple, je viens de créer un contrôle "dialog.ocx" (enregistré comme composant "dialog.file") qui ne contient que
cette fonction.
Il est librement téléchargeable ici : http://www.bellamyjc.org/download/dialog.zip (7 ko) Le zip contient le .ocx et toutes les sources (.ctl, .vbp, ...) que tu pourras adapter à ta convenance.
Pour le (re)compiler, VBCCE (gratuit) suffit : http://www.bellamyjc.org/fr/vbsgeneralites.html#VBCCE
Quant à son utilisation dans un VBS, elle est très simple.
Il faut tout d'abord enregistrer l'ActiveX (une fois pour toutes) : regsvr32 dialog.ocx (c'est fait automatiquement si on recompile le programme)
Tu pourras modifier p.ex. la ligne suivante : ofn.FLAGS = OFN_EXPLORER + OFN_FILEMUSTEXIST + OFN_HIDEREADONLY + OFN_PATHMUSTEXIST qui signifie : - nouvelle interface Explorateur de fichier (celle de W2K/XP) - le fichier doit exister - la case "lecture seule" est masquée - le chemin doit exister
Tu pourras aussi (si tu veux) ajouter la fonction "GetSaveFileName" pour enregistrer un fichier (la structure est strictement identique) : Private Declare Function GetSaveFileName Lib "comdlg32.dll" _ Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long ....
NB: Dans le source, j'ai défini toutes les constantes utilisables (OFN_OVERWRITEPROMPT, OFN_NOVALIDATE, OFN_ALLOWMULTISELECT, OFN_CREATEPROMPT,...)
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org http://www.bellamyjc.org *