Récuperer nom et chemin de l'executable

Résolu
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 - 30 juil. 2004 à 16:58
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010 - 31 juil. 2004 à 17:12
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

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
30 juil. 2004 à 17:17
Salut,
GetModuleFileName(...) en passant 0 au premier param.
3
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
31 juil. 2004 à 14:18
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 :)
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
31 juil. 2004 à 15:38
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...
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
31 juil. 2004 à 15:47
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);
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
31 juil. 2004 à 17:10
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 :)
0
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
31 juil. 2004 à 17:12
ah ouai c po con tu part de la fin...
youpi :)
0
Rejoignez-nous