Ouvrir un dossier depuis un bouton en vbs

Résolu
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005 - 17 sept. 2005 à 12:48
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005 - 18 sept. 2005 à 18:08
bonjours a tous !
Voila je viens de faire un autorun sur un cd de photos et je voudrais faire ceci :
http://www.developpez.com/vbasic/tutoriel/images/window1.gif

Mais a la place de suppression je voudrais que ca ouvre le cd si la personne clique sur oui et ne rien faire si elle clique sur non.

J'en suis a ca :
//Dim Sup
//Sup = MsgBox("Le CD a été correctement reconnu. Voulez-vous voir le dossier photo ?", vbQuestion + vbYesNo, "Question")
//If (Sup = vbYes) Then
//
//'Ouvrir le dossier "Letre du lecteur ou est le cd":\photo\
//
//End If

Je n'aarive pas a ouvrir le dossier ... Mad
Merci !

http://pmdzsite.free.fr

18 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 sept. 2005 à 16:52
Pour esquiver le lecteur "a" rajoute les lignes en gras

If (Sup = vbYes) Then
For Each sDrive In oFso.Drives
If Not sDrive="A:" then
If oFso.FolderExists(sDrive & "\photo") Then
sCheminPhoto = sDrive & "\photo"
oShell.Open sCheminPhoto
Exit For
End If
End If
Next
End If

ci cela ne te conviens pas ouvre une boite de dialogue de dossier à la place exemple complet ci-dessous pour ton cas

---------------------------------------------------------------------------------------
Dim oFso
Dim sCheminPhoto
Dim oshell
Dim oItem
Dim Flags


Flags = &H0001 + &H0020


Set oFso = CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject("Shell.Application")


Set oItem = oShell.BrowseForFolder(0, "Recherche du dossier photo", Flags, "")

If IsValue(oItem) Then
If InStr(1,oItem.Title,":") = 0 Then
sCheminPhoto = oItem.ParentFolder.ParseName(oItem.Title).Path
oShell.Open sCheminPhoto
End If
End If

Function TestValue(obj)
Dim sVar
On Error Resume Next

sVar = " " & obj


If Err <> 0 Then TestValue False Else TestValue True
End Function

-----------------------------------------------------------------------------------
Voila...
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 sept. 2005 à 20:56
"If oFso.FolderExists(sDrive & "\photo") Then"
sert juste à s'assurer que c'est bien le cd que tu désires puisqu'il y a le dossier "photo".
Si tu l'enlèves "photo" alors le test ne sera pas le meme il testera juste si un cd est présent dans le lecteur de ce fait on pourra insérer n'importe quel cd ton programme ne fera pas la différence.
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 sept. 2005 à 14:25
Salut,
pour trouver la lettre du lecteur je ne sais pas trop je posterais un exemple si je trouve
sinon simple pour ouvrir un dossier en vbs
à la place de c:\program files tu mets bien sur ton chemin de photo

------------------------------------------------
dim oSshell

set oShell= WScript.CreateObject("Shell.Application")

oShell.Open "c:\program files"

------------------------------------------------
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 sept. 2005 à 14:46
Bon je viens de faire ton petit bout de code

Dim Sup
Dim oFso
Dim sDrive
Dim sCheminPhoto
Dim oSshell

Set oFso= CreateObject("Scripting.FileSystemObject")
Set oShell= WScript.CreateObject("Shell.Application")

Sup = MsgBox("Le CD a été correctement reconnu. Voulez-vous voir le dossier photo ?", vbQuestion + vbYesNo, "Question")

If (Sup = vbYes) Then
For Each sDrive In oFso.Drives
If oFso.FolderExists(sDrive & "\photo") Then
sCheminPhoto = sDrive & "\photo"
oShell.Open sCheminPhoto
Exit For
End If
Next
End If

Voila bon courage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005
17 sept. 2005 à 15:24
probleme => ou que soit le vbs il cherche le dossier photos dans a:\
0
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005
17 sept. 2005 à 15:40
on peux pas faire editer ?
on peut faire des chemein relatif en vbs ?
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 sept. 2005 à 16:53
Oups remplace dans le second exemple
If IsValue(oItem) Then
par
If TestValue(oItem) Then
0
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005
17 sept. 2005 à 17:51
merci beaucoup !
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 sept. 2005 à 19:28
De rien...bonne prog
0
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005
17 sept. 2005 à 19:40
juste une chose : comment puis faire (dans le premier script) pour ouvrir a la racine du cd et non pas dans un dossier du cd ?
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 sept. 2005 à 19:48
If (Sup = vbYes) Then
For Each sDrive In oFso.Drives
If Not sDrive="A:" then
If oFso.FolderExists(sDrive & "\photo") Then
sCheminPhoto = sDrive & ""
oShell.Open sCheminPhoto
Exit For
End If
End If
Next
End If

voila pas tester mais je pense que c'est cela que tu recherches
++
0
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005
17 sept. 2005 à 20:16
j'ai essayé en mettant :
If (Sup = vbYes) Then
For Each sDrive In oFso.Drives
If Not sDrive="A:" then
If oFso.FolderExists(sDrive & "") Then
sCheminPhoto = sDrive & ""
oShell.Open sCheminPhoto
Exit For
End If
End If
Next
End If

ca va changer qql chose de rajouter "photo" dans :
If oFso.FolderExists(sDrive & "\photo") Then

???
0
cs_jeanmarc Messages postés 34 Date d'inscription mardi 18 juin 2002 Statut Membre Dernière intervention 22 novembre 2005
18 sept. 2005 à 03:12
Pour connaitre le driver du cd-rom:
Dim strDriveLetter, IntDriveLetter, Fso
Const CDROM = 4
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
' Detection des lecteurs de CD
strDriveLetter = ""
For intDriveLetter = Asc("A") To Asc("Z")
Err.Clear
If fso.GetDrive(Chr(intDriveLetter)).DriveType = CDROM Then
If Err.Number = 0 Then
strDriveLetter = Chr(intDriveLetter)
msgbox "le driver du graveur se trouve sur " & strDriveLetter & ":"
Exit For
End If
End If
Next
0
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005
18 sept. 2005 à 10:13
Willi => donc si le repertoire photo est dans c: et d: il ouvrira forcement c: ?

jeanmarc => ok merci ;) je garde le code !
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
18 sept. 2005 à 10:54
oui j'ai oublié de tester le support merci jeanmarc de cette modification!
0
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005
18 sept. 2005 à 14:07
une derniere chose :
dans ce script :
If (Sup = vbYes) Then
For Each sDrive In oFso.Drives
If Not sDrive="A:" then
If oFso.FolderExists(sDrive & "\photo") Then
sCheminPhoto = sDrive & "\photo"
oShell.Open sCheminPhoto
Exit For
End If
End If
Next
End If

est ce qu'il est possible de verifier si un fichier existe au lieu d'un dossier ?
=> ici : If oFso.FolderExists(sDrive & "\photo\1.jpg") Then
Je peux faire ca ?
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
18 sept. 2005 à 14:09
Remplace
If oFso.FolderExists(sDrive & "\photo\1.jpg") Then
par
If oFso.FileExists(sDrive & "\photo\1.jpg") Then
0
pmdzsite Messages postés 10 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 18 septembre 2005
18 sept. 2005 à 18:08
merrci !!!

PS: si je connaissais mieux l'anglais ...

Merci beaucoup c'est completement reglé !
0
Rejoignez-nous