Ouvrir un dossier depuis un bouton en vbs

[Résolu]
Signaler
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005
-
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005
-
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

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 82 internautes nous ont dit merci ce mois-ci

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
"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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 82 internautes nous ont dit merci ce mois-ci

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
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"

------------------------------------------------
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
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
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005

probleme => ou que soit le vbs il cherche le dossier photos dans a:\
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005

on peux pas faire editer ?
on peut faire des chemein relatif en vbs ?
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Oups remplace dans le second exemple
If IsValue(oItem) Then
par
If TestValue(oItem) Then
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005

merci beaucoup !
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
De rien...bonne prog
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005

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 ?
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
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
++
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005

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

???
Messages postés
34
Date d'inscription
mardi 18 juin 2002
Statut
Membre
Dernière intervention
22 novembre 2005

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
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005

Willi => donc si le repertoire photo est dans c: et d: il ouvrira forcement c: ?

jeanmarc => ok merci ;) je garde le code !
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
oui j'ai oublié de tester le support merci jeanmarc de cette modification!
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005

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 ?
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Remplace
If oFso.FolderExists(sDrive & "\photo\1.jpg") Then
par
If oFso.FileExists(sDrive & "\photo\1.jpg") Then
Messages postés
10
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
18 septembre 2005

merrci !!!

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

Merci beaucoup c'est completement reglé !