Récupérer le chemin du dossier d'installation de windows [Résolu]

FlorimondH 11 Messages postés lundi 24 septembre 2007Date d'inscription 13 mars 2010 Dernière intervention - 27 juin 2008 à 19:18 - Dernière réponse : jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention
- 27 juin 2008 à 22:59
Bonjour à tous,
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:24pt;
height:24pt'/><![endif]--><!--[if !vml]--><!--[endif]-->
La finalité de ma petite application est de créer un fichier XML. Quand
celui-ci est fin prêt, on peut cliquer sur un petit bouton "atteindre le
fichier". Il démarre l'explorateur windows avec la commande Shell et en
ligne de commande le chemin du fichier qui vient d'être crée. Le petit détail
ennuyeux c'est qu'il faut connaître le chemin de cette application. Si
"explorer.exe" se trouve toujours à la base du dossier d'installation
de Windows (me semble-t-il), le nom de ce dossier varie d'une version de
windows à l'autre mais aussi selon la fantaisie de celui qui a installé le PC.
Aussi, j'aimerais savoir comment récupérer le chemin du dossier d'installation
de windows. J'ai déjà cherché dans l'API, j'ai aussi examiné ma documentation
sur l'objet "SysInfo", et google ne semble pas être mon ami . Peut-être ais-je simplement mal cherché...


Quelqu'un a-t-il une solution?

Merci d'avance
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 27 juin 2008 à 19:37
3
Merci
Salut,

il existe une variable d'environement appelé SystemRoot. Je ne sais pas si sont nom est different d'une version de windows a une autre mais je ne pense pas.

En VB6 je crois que cela ce passe de la meme façon qu'en VBA donc pour recupperer le contenu de cette variable

Dim WinRep As String
WinRep = Eviron("SystemRoot")

A+

Merci bigfish_le vrai 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 27 juin 2008 à 19:42
3
Merci
salut,

exact bigfish
on peut aussi ajouter un $ à environ_ pour avoir une string et non un variant

NB : (certains) environ ne fonctionne(nt) que sous Win2K et +
en dessous (et au dessus) il faudra utiliser l'API GetSystemDirectory

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 27 juin 2008 à 19:56
3
Merci
salut bigfish ^^

et moi bêtement je ne lis même (presque) pas la question ^^

d'une part oui, SHELL peut lancer "juste" EXPLORER.EXE" sans connaître son chemin
d'autre part ce n'est pas la meilleure méthode
le client peut avoir une autre application pour les XML
explorer va lui lancer iexplorer

il faut donc passer par l'API ShellExecute
avec ce petit snippet :
http://www.codyx.org/snippet_ouvrir-document-lancer-executable_25.aspx#1548

voilou

ps bigfish : je n'ai pas de "temp" dans mon "c:"

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 27 juin 2008 à 20:40
3
Merci
...

il est vrai qu'une seul virgule aurai suffit mais j'ai la mauvaise abitude de les laisser. Pour le reste vois l'explication trouvé ici

A+

Merci bigfish_le vrai 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
Meilleure réponse
achills 214 Messages postés vendredi 13 janvier 2006Date d'inscription 20 août 2008 Dernière intervention - 27 juin 2008 à 21:51
3
Merci
our lancer explorer.exe
'declaration
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" ( _
    ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", "explorer.exe", "", App.Path, 1
End Sub

cordialement ^^

Merci achills 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de achills
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 27 juin 2008 à 19:42
0
Merci
...

j'ai pas percuté mais il me semble que tu n'as pas besoin de connaitre le chemin de l'explorer pour le lancer

En VBA on fait comme suit :

Dim DefaultFolderPath As String
DefaultFolderPath = "c:\temp"
Shell "explorer /e,," & DefaultFolderPath, vbNormalFocus

A+
Commenter la réponse de bigfish_le vrai
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 27 juin 2008 à 19:45
0
Merci
Salut PCPT
Commenter la réponse de bigfish_le vrai
FlorimondH 11 Messages postés lundi 24 septembre 2007Date d'inscription 13 mars 2010 Dernière intervention - 27 juin 2008 à 20:19
0
Merci
ok, merci à vous deux effectivement, je pensais avoir testé sans préciser le chemin et que ça ne fonctionnait pas, mais j'ai cherché midi à 14h! je ne connaissait pas ShellExecute et ça va m'être bien utile aussi^^
bigfish, c'est un détail, mais est ce que tu pourrais juste me préciser à quoi correspondent les deux virgules après le slash e -> Shell "explorer /e,,"
...il n'y a pas d'ordre pour les arguments à ma connaissance...
Commenter la réponse de FlorimondH
FlorimondH 11 Messages postés lundi 24 septembre 2007Date d'inscription 13 mars 2010 Dernière intervention - 27 juin 2008 à 21:25
0
Merci
ok comme ça tout est clair et complet!
merci encore
Commenter la réponse de FlorimondH
achills 214 Messages postés vendredi 13 janvier 2006Date d'inscription 20 août 2008 Dernière intervention - 27 juin 2008 à 21:38
0
Merci
'declaration du chemin du windows
dim environ
environ = Environ("windir")
Commenter la réponse de achills
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 27 juin 2008 à 22:59
0
Merci
Bonsoir,

Bon...
Moi, pour ouvrir l'explorateur sur un répertoire de mon choix, j'ai la mauvaise (?) habitude de faire ceci :
(ici pour ouivrir l'explorateur sur d:\monoutil

Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long



Private Sub Command1_Click()
  WinExec "Explorer.exe d:\monoutil", 10
End Sub
Commenter la réponse de jmfmarques

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.