Fabrice518
Messages postés434Date d'inscriptionvendredi 26 novembre 2004StatutMembreDernière intervention22 juin 2010
-
11 oct. 2006 à 19:09
Fabrice518
Messages postés434Date d'inscriptionvendredi 26 novembre 2004StatutMembreDernière intervention22 juin 2010
-
12 oct. 2006 à 09:21
Bonjour a tous,
apres avoir fouiller un peu partout sur la toile,
je ne parviens toujours pas à faire un truc assez simple :
ouvrir ma fenetre des dossiers temporaires.
je m'explique, je lancais avec shell un .bat contenant
start %temp%
qui m'ouvrait ma fenetre.
Mais je voudrais supprimer mon .bat, et executer directement ma commande
en VB.
j'ai tester :
Shell ("start %temp%")
et plein d'autre truc, aussi avec explorer.exe, mais celui ci m'ouvre Mes Documents...
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 11 oct. 2006 à 19:27
Salut !
Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" ( _
ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
'Remplace les Long par des Integer si tu es en .Net
Dim buf As String = Space(200)
GetTempPath(200, buf)
Shell("explorer " & Trim(buf))
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 11 oct. 2006 à 21:30
Allons-y ligne par ligne :
Ceci : (Au passage tu dois la placer au dessus des procédures tout en haut de ton fichier, contrairement à ce qui suit...)
Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" ( _
ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
Est une déclaration d'Api, celle-ci appartient aux api fournies par microsoft permettant aux programmeurs d'interagir avec Windows, plus précisément, elle remplit la variable lpBuffer (de taille nBufferLength) avec le chemin temporaire windows (que tu recherches).
Cette ligne :
Dim buf As String = Space(200)
Déclare un String et lui attribue une valeur, mais j'ai fait une erreur je crois. Si je me rappelle bien, en VB6 on ne peut pas attribuer une valeur directement à la déclaration. (Excuse moi je suis habitué au .Net). La syntaxe correcte est donc :
Dim buf As String
buf = Space(200)
La fonction Space(n) renvoie une chaine de caractères remplie de n espaces.
Ici j'invoque l'api en indiquant la longueur de ma variable, puis ma variable elle-même :
GetTempPath(200, buf)
Et enfin j'invoque la fonction shell ouvrant l'explorer avec comme paramètre le chemin que la fonction GetTempPath nous a fournit. La fonction Trim(s) sert à retirer les espaces à droite et à gauche de s.
Shell("explorer " & Trim(buf))