!!! Dossier de l'exécutable !!!

[Résolu]
Signaler
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013
-
Bonjour à tous et à toutes !

Ca doit vous paraître simple comme réponse mais attendez que vous explique.
En fait je veux savoir dans quel dossier se trouve mon exécutable lorsqu'il se lance.
Si on le lance de la manière classique (double clic dessus), avec GetCurrentDirectory() ça fonctionne du tonerre !
Par contre si depuis l'explorateur windows je fais ouvrir avec..., GetCurrentDirectory me retourne le dossier du fichier ouvert avec mon programme.
Quelqu'un à une idée ? une API ?
Merci d'avance.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

4 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
As tu essayé ceci?

C++ (@++)<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Je crois qu'il est aussi possible de faire quelque chose dans ce genre:

// VARIABLE GLOBALE
char CurDir[300];

void AppPathInitialize (void)
{
    char *c = CurDir + GetModuleFileName(0, CurDir, 300);
    while(*c != '\\') c--;
    *c = 0;
}

Comme ça, on utilise une fois au début du programme cette fonction et le répertoir de l'application est stocker dans CurDir.

C++ (@++)<!--
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Merci bcp SAKingdom !!!
C'est exactement ce que je cherchais.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013

Moi je fait sa:
char path_cache[MAX_PATH]
GetModuleFileName(HInstance,path_cache,MAX_PATH);
PathRemoveFileSpec(path_cache);

mais il faut linker la librairie libshlwapi.a

l3KTr0 Was HeRe