Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Démarrer prog en même temps que Windows

0 views
Skip to first unread message

WonderMan

unread,
Apr 28, 2008, 5:18:34 AM4/28/08
to
Bonjour,

J'ai développé un programme en C++ (MFC) qui utilise un fichier .INI
placé dans le même dossier que l'EXE pour récupérer des données dont il
a besoin au démarrage.
Il y a donc dans le code quelque chose du genre (en simplifiant) :

nomDossier = GetCurrentDirectory() ==> Récupère le dossier de l'EXE
nomFichier = nomDossier + "\\MonAppli.ini";
/.../
GetPrivateProfileString(xxx,xxx,xxx,nomFichierINI); ==> Lecture des
données dans le fichier INI

J'ai vérifié le fonctionnement, et tout marche parfaitement quand je
double clique sur l'EXE pour le lancer.
Seulement, j'ai ensuite voulu inscrire mon EXE dans la base de
registres pour que l'application démarre automatiquement lorsque
Windows démarre. Et là, je constate que si mon programme démarre bien
au démarrage de Windows, il se comporte exactement comme s'il ne
trouvait pas le fichier INI qui contient les données qu'il doit lire en
démarrant.

Je soupçonne fortement que dans ce cas précis, la fonction
GetCurrentDirectory() ne renvoie pas le bon nom de dossier (puisque
c'est sur elle que je me base pour créer le nom complet de mon fichier
INI), mais je ne comprend pas pourquoi. Et surtout, comment faire pour
que mon application démarre bien en même temps que Windows, mais arrive
à localiser son fichier INI ?

Merci de vos conseils et idées.


WonderMan

unread,
Apr 28, 2008, 5:24:39 AM4/28/08
to
WonderMan avait énoncé :

PS : J'ai bien pensé à mettre le fichier INI de mon application dans le
dossier de Windows, et remplacer l'appel à GetCurrentDirectory() par
GetWindowsDirectory(), ce qui pourrait peut-être résoudre le problème,
mais si c'était possible, je préfèrerais laisser le fichier INI dans le
même dossier que le fichier EXE ?


Christian ASTOR

unread,
Apr 28, 2008, 7:20:13 AM4/28/08
to
WonderMan wrote:

> Je soupçonne fortement que dans ce cas précis, la fonction
> GetCurrentDirectory() ne renvoie pas le bon nom de dossier

Il faut généralement utiliser GetModuleFileName()

WonderMan

unread,
Apr 28, 2008, 9:55:25 AM4/28/08
to
Christian ASTOR a utilisé son clavier pour écrire :

Je testerai cette solution.
Merci de votre réponse.


0 new messages