Rechercher : dans
Par :

[Langage C] dossier de l'utilisateur courant

Dernière réponse le 5 jan 2009 à 15:13:15 kaham, le 3 jan 2009 à 23:51:35 
 Signaler ce message aux modérateurs

Bonjour,
je suis en train de créer un petit programme en C qui demande des informations comptable a l'utilisateur et je les stock dans un fichier. Mais j'aimerais que ce fichier ce trouve dans

C:\Documents and Settings\nom_d_utilisateur_courant\Application Data
de façon a ce que les autres utilisateur ne puisse avoir accès a ce fichier.

Mais je ne connait pas le "nom d'utilisateur" a l'avance. Et je ne veux pas qu'au lancement du programme celui-ci demande a l'utilisateur son "nom d'utilisateur".

Comment puis-je faire pour le connaitre ou directement placer mon fichier dans ce dossier sans le connaitre ce "nom"?
Configuration: Windows XP
Firefox 2.0.0.20

Meilleures réponses pour « [Langage C] dossier de l'utilisateur courant » dans :
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Introduction au langage C VoirPetite histoire du C Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie...

1

0x0syscall, le 4 jan 2009 à 01:36:58

En console tu peux récupérer le nom de l'user avec

 echo %username%

tu peux essayer de te base sur ça dans ton programme en C, avec system(),
après c'est sur que sa fait pas très propre :s 0x0syscall,

Répondre à 0x0syscall

2

Brett, le 4 jan 2009 à 04:46:26

Oui, ne jamais utiliser system()
Il faut utiliser l'api Win32 (SH)
demander sur le newsgroup professionnel des apis win32 :
news://fr.comp.os.ms-windows.programmation
où cela a souvent été donné (C et C++)

Répondre à Brett

3

kaham, le 4 jan 2009 à 18:03:05

Merci,
%username% est parfais pour le petit logiciel que je veux faire !

Répondre à kaham

4

kaham, le 4 jan 2009 à 23:31:37

Voila autre problème... selon si l'utilisateur est sur xp ou vista le chemin de l'utilisateur est différant. Il me faudrait donc un moyen de connaitre le système d'exploitation utilisé sur la machine?

j'ai cherché une commande comme echo %username% mais je n'ai rien trouvé.

Répondre à kaham

5

mamiemando, le 4 jan 2009 à 23:57:30

Non non ce n'est pas la bonne méthode, il y a une fonction dans la libc qui est prévue pour :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/­getcwd.3.html

L'avantage de la méthode est qu'elle est indépendante de l'OS (elle marchera aussi bien sous linux que sous windows).

Bonne chance

Répondre à mamiemando

6

kaham, le 5 jan 2009 à 00:24:30

Je ne vois pas en quoi cette fonction va me permettre de connaitre l'os de la machine de plus je n'ai rien compris a son fonctionnement.

Peut tu m'éclairer ?

Répondre à kaham

7

Char Snipeur, le 5 jan 2009 à 09:31:38
  • +1

Getcwd donne le répertoire courant, pas le repéertoire utilisateur.
dans une console, regarde avec "set" les différentes variables qui sont définies, tu en trouvera bien une qui te convient.
Moi, j'ai :
%USERPROFILE% qui donne le chemin complet du répertoire utilisateur, donc devrai convenir sous vista ou XP.
%APPDATA% pour le répertoire que tu cherche (rep_utilisateur_\nom_utilisateur\application_data)
pour l'os, tu as %OS% ou la commande "ver.exe" pour plus de détails. Salutation !
Char Snipeur

Répondre à Char Snipeur

9

 mamiemando, le 5 jan 2009 à 14:26:02

Ah oui désolée j'ai mal lu ^^

Répondre à mamiemando

8

kaham, le 5 jan 2009 à 12:35:04

Merci ça fonctionne !

Répondre à kaham
Collection CommentÇaMarche.net