IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] Récupération des variables system...


Sujet :

Windows Forms

  1. #1
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 6 270
    Points : 8 400
    Points
    8 400
    Par défaut [Resolu][C#] Récupération des variables system...


    Il n'y à pas longtemps, j'ai découvert que l'on pouvait récupérer les variables de Windows (par ex: le répèrtoire 'Program Files') par la commande
    System.Environment.GetEnvironmentVariable("ProgramFiles").
    J'ai réussi à obtenir pas mal de variables comme ça mais il y en à 2 que dont je ne connais pas les noms,mais qui me serai utiles : le répèrtoire 'bureau' de l'utilisateur (actif sur la machine), et le répèrtoire du menu démarer (menu démarer > Tout les programmes), là ou sont mis les raccourcis de presque toutes les applications que j'installe.
    Alors si quelqu'un connaissait le nom de ces variables ...
    Merci d'avance !

  2. #2
    Candidat au Club
    Inscrit en
    avril 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    salut,

    la variable env USERPROFILE donne le chemin du profile de l'utilisateur genre C:\Documents and Settings\toto

    C'est dans ce répertoire que sont stockés les répertoires desktop et Start Menu entre autres...

    Tu feras attention à 2 choses ( au moins ) :

    - le nom des répertoires change en fonction de la langue desktop/bureau
    - certains répertoire peuvent être déplacés. C'est mon cas pour My Documents qui réside sur mon disque D. Mais il y a toujours un My Documents dans mon profile.

    Il serait peut-être plus sûr d'utiliser la registry qui contient toutes ces infos.
    tu peux l'acceder avec Microsoft.Win32.Registry.
    Les infos que tu cherches se trouvent dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
    et dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    Pascal

  3. #3
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 6 270
    Points : 8 400
    Points
    8 400
    Par défaut
    Merci, je vais essayer.
    Mais comme j'ai un p'tit Pb avec l'utilisation du registre... enfin, j'essai d'abord...

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 6 270
    Points : 8 400
    Points
    8 400
    Par défaut
    Hum, comme il me renvoi une valeur "nule", je suppose que je m'y prend mal. Pourrai-t-on m'expliquer, COMMENT, récupérer les valeurs de ces clées ???
    Merci d'avance !

  5. #5
    Candidat au Club
    Inscrit en
    avril 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : avril 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut,

    Vi, on peut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    using System;
    using Microsoft.Win32;
     
    namespace registry
    {
     
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args)
    		{
    			RegistryKey hKeyCurrentUser = Registry.CurrentUser;
     
    			RegistryKey shellFolders = hKeyCurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders");
    			if (shellFolders!=null)
    			{
    				foreach( string valueName in shellFolders.GetValueNames())
    				{
    					Console.WriteLine("{0} = {1}", valueName, shellFolders.GetValue(valueName));
    				}
     
    				string myDocuments = (string) shellFolders.GetValue("Personal");
    				if ( myDocuments != null )
    				{
    					Console.WriteLine("My documents Path : {0}", myDocuments);
    				}
     
    			}
    			Console.ReadLine();		
    		}
    	}
    }
    Pascal

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 6 270
    Points : 8 400
    Points
    8 400
    Par défaut
    , ça marche !

  7. #7
    Futur Membre du Club
    Inscrit en
    avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Il y a beaucoup plus simple : la méthode
    public static string GetFolderPath(Environment.SpecialFolder folder)

    Environment.SpecialFolder propose différentes constantes énumérées dont Environment.SpecialFolder.DesktopDirectory

    Voir la MSDN pour plus d'infos

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    septembre 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : septembre 2002
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Bonjour,
    J'ai besoin d'exactement la même chose, mais pour le compact framework.

    Je cherche à connaître le chemin exact du folder "My documents" qui peut s'appeler "Mes documents" sur un OS français...

    La fonction 'GetFolderPath' proposée par killergege ne s'applique pas au C.F.


    Une idée?

    Merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Récupération des variables d'un serialize()
    Par Tchupacabra dans le forum Langage
    Réponses: 9
    Dernier message: 05/12/2007, 17h05
  2. Récupération des variables de formulaire
    Par Delgion dans le forum Langage
    Réponses: 9
    Dernier message: 04/09/2007, 12h44
  3. récupération des variables système dans pl/sql
    Par neqrouzbr dans le forum PL/SQL
    Réponses: 2
    Dernier message: 28/03/2007, 11h53
  4. [Debutant][Système]Récupérer la valeur des variables systeme
    Par cameleon2002 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 16/02/2007, 09h57
  5. SPIP - récupération des variables d'une URL
    Par romaint2b dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/08/2006, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo