Probleme avec ma dirlistbox

nessx Messages postés 98 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 8 janvier 2005 - 23 avril 2004 à 23:05
nessx Messages postés 98 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 8 janvier 2005 - 24 avril 2004 à 22:59
toujours un probleme avec ma dirlistbox
voir mon ancien courrier juste en dessous il y a encore un soucis
merci d'avance
a+
NessX

11 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 avril 2004 à 23:51
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

Tu lis la value "Personal" et tu as directory Mes Documents pour initialiser ton dirbox.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
24 avril 2004 à 01:33
Pour que ça marche sur tous les PC, il faut trouver le chemin du dossier "Mes Documents" (ou "My Documents") grâce à une fonction API.

Dans la section Général - Déclarations de ta feuille :

Private Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" ( ByVal hwnd As Long, ByVal pszPath As String, ByVal csidl As Long, ByVal fCreate As Long) As Long


tout ça sur une seule ligne.

et dans Form_Load

Private Sub Form_Load()
Dim Chemin As String, Réponse As Long
Chemin = Space$(300)
Réponse = SHGetSpecialFolderPath(Me.hwnd, Chemin, 5, 0)
If (Réponse <> 0) Then Chemin = Left$(Chemin, InStr(Chemin, vbNullChar) - 1)
Drive1.Drive = "C:"
Dir1.Path = Chemin
End Sub


(Fais un copier-coller)
0
nessx Messages postés 98 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 8 janvier 2005
24 avril 2004 à 10:15
merci a tous pour vos réponse jje vais essayer sa
a+
NessX
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
24 avril 2004 à 14:01
Salut, c super vbfrance quand même.

Avant, j'utilisais SHGetSpecialFolderLocation pour les dossiers spéciaux.

Merci à rene38 de m'avoir fait connaître SHGetSpecialFolderPath.

Je crois que je vais abandonner l'API Guide de AllApi car cette fonction n'y est pas décrite. J'irais voir directement chez µSoft MSDN maintenant.

Cordialement

CanisLupus
0

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

Posez votre question
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
24 avril 2004 à 14:36
ApiGuide : 925 déclarations
ApiViewer 2004 : 4834 déclarations mais ... sans exemple
0
nessx Messages postés 98 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 8 janvier 2005
24 avril 2004 à 15:36
je te remercie rene38 mais peut tu m'expliquer ton code vu que je suis debutant de toute façon sa marche mais comprend pas le code
merci d'avance
ps:j'ai au moins 3 autres questions dans la rubrique multimedia si sa interesse quelqu'un pour y répondre

merci d'avance
a+
NessX
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
24 avril 2004 à 16:03
Private Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" ( ByVal hwnd As Long, ByVal pszPath As String, ByVal csidl As Long, ByVal fCreate As Long) As Long

Private Declare Function SHGetSpecialFolderPath
On déclare la fonction qu'on appelle comme ça (ou autrement, pas d'importance)

Lib "shell32.dll" : cette fonction est dans la librairie (dll) shell32

dans cette dll, son nom est "SHGetSpecialFolderPathA"

Il faut lui passer par valeur (By Val) 4 paramètres :

hWnd : le "handle" de la fenêtre qui appelle = Me.hWnd

pszPath As String : la chaîne de caractères qui contiendra le chemin du dossier spécial

csidl As Long : l'identificateur du dossier voulu qui vaut :

5 pour "Mes document", ....

fCreate As Long : 0 (si différent de 0, le dossier sera créé s'il n'existe pas)
-------------------------------
Chemin = Space$(300) : chaîne de 300 espaces qui sera modifiée par la fonction

Réponse <> 0 si la fonction a trouvé

Chemin = Left$(Chemin, InStr(Chemin, vbNullChar) - 1)
La fonction a remplacé les 300 espaces par le chemin voulu suivi de caractères nuls (chr$(0)) : on élimine ces derniers caractères

Ouf !
0
nessx Messages postés 98 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 8 janvier 2005
24 avril 2004 à 19:45
Encore merci rene38 pour les explication et le code et a ceux qui ont participer a ma question,car sa marche. :big)
a+
NessX
0
nessx Messages postés 98 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 8 janvier 2005
24 avril 2004 à 22:09
Ais je ton accord pour publier ton nom rene38 dans mon about en disant "Aidez grâce au site www.vbfrance.com et c'est utilisateur"
et la je marque ton nom tu veux ou pas

NessX
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
24 avril 2004 à 22:48
Il n'y a aucun Copyright sur les codes écrits sur ce site, pas plus que sur mon pseudo, mais je préfèrerais apparaître dans un "A propos" plutôt qu'un "About" ...
0
nessx Messages postés 98 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 8 janvier 2005
24 avril 2004 à 22:59
Pas désolé mais en fait vu que je l'ai mis sur le site il y a un instant en fait je t'ai mis dans les remerciement dans la description final de ma sources j'espere que sa te conviendra
voilà mon programme s'appelle Nessound il est dans la rubrique multimedia sous le nom de lecteur mp3/wav nessound v0.81 sauf que j'ai oublier de préciser qu'il lit les cd audio mais les rajouter en message donc voilà
a+
merci d'avance
NessX
0
Rejoignez-nous