Récuperer nom et chemin de l'executable [Résolu]

Signaler
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
-
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
-
bonjour a tous.
j'aimerais savoir comment un executable peut récuperer ses propres chemins et noms dans une api win32....
avec une main normale on peut récuperer le nom sans problemes avec argv [0], mais la.....je seche. je voudrais aussi son chemin. en fait je voudrais que mon fichier se détecte pour inscrire son chemin dans la base de registre.
merci d'avance

6 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
GetModuleFileName(...) en passant 0 au premier param.
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
tiens voila une fonction ke j'ai faite ki te recup le chemin
genre c:\windows\system32\exmple.exe
elle te retourne
c:\windows\system32\

char* GetCurDir() //permet de recup le chemin ou est l'executable, sert pour les ini file (tray manager.ini,tray manager_tmp.ini
{

char* CurDirz=0;
TCHAR tohBuffer[MAX_PATH];
CurDirz = tohBuffer;

GetModuleFileName(NULL,CurDirz, MAX_PATH);
int slash=0,slashtmp=0;
char* c,*d;
c=CurDirz;
d=CurDirz;
int longeur=(int)strlen(CurDirz),nbcompt=0;

while (nbcompt!=longeur)
{
if(*c=='\\') slash++;
c++;
nbcompt++;
}
while (slashtmp!=slash)
{
if(*d=='\\') {slashtmp++; if(slashtmp==slash) {d++; *d='\0';}}
d++;
}
return CurDirz;

}

youpi :)
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
youpiyoyo, elle est quand meme longue cette fonction, alors qu'il suffit de rajouter un 0 apres le dernier slash.
En plus, tu retournes un pointeur vers un buffer local il me semble...
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
voila par exemple une func qui te retourne le path de l'executable:

int GetDir(char * buf, int size)
{
char * c = buf + GetModuleFileName(0, buf, size);
while(*c != '\\' && c > buf) c--; c++;
*c = 0;
return (c - buf);
}
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
ossi, c plus simple mais ma fonction marche car si tu fais un strcpy avec ma fonction dedans il copie avant de détruire, donc c ossi bon, mais tu as raison ta fonction est bien mieu
youpi :)
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
ah ouai c po con tu part de la fin...
youpi :)