lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009
-
2 déc. 2008 à 08:10
JejeLand
Messages postés111Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention 5 août 2011
-
5 déc. 2008 à 08:55
Bonjour,
Voila, j'ai créé mon application à laquelle j'ai attaché un fichier d'aide en format .chm.
Quand je le lance depuis mon pc, l'aide s'ouvre sans problème.
Quand je cré mon SetUp à l'aide IsTool et InnoSetup, quand je lance mon exe en test sur machine virtuelle mon aide ne s'ouvre pas et je n'ai pas de message d'erreur rien... Au niveau de mon Setup j'insere mon fichier .exe ainsi que mon fichier .chm.
Quelqu'un a une idée? Faut-il mettre d'autres fichiers dans le setup?
Mon code pour ouvrir mon fichier d'aide :
ShellExecuteA(this->Handle,"open","[file://\\..\\HlpLAMA.chm \\..\\HlpLAMA.chm]" ,0,0,SW_NORMAL) ;
Je développe sous C++ builder 6
J'espere avoir été claire et j'espere que vous pourrez m'aider à trouver ma solution.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 2 déc. 2008 à 10:25
Salut,
Tient! LAMA ca me dit quelque chose !
Mais bon c'est pas le même, vu que c'est un concepte développé par une société d'un grand groupe international.
Pour en revenir à ton pb, en effet, quelque fois les machines virtuelles n'ont pas le même comportement que les machines réelles.
Si ton fichier chm est dans le répertoire supérieur, pourquoi ne fais-tu pas "..\\HlpLAMA.chm" dans les premiers "\".
Autre idée, il me semble que si le fichier est introuvable, des fois les erreurs n'apparaissent pas. Peux-tu tracer le répertoire courant de l'appli pour voir si sur la machine virtuelle il ne serait pas différents.(GetCurrentDirectory)
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 2 déc. 2008 à 10:58
Salut Fregolo52 et merci de ta réponse.
Malheureusement j'ai testé tes deux solutions sans résultats... Mon fichier d'aide est au bon endroit.
En tout cas merci
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 2 déc. 2008 à 20:05
Salut,
C'est un peu risqué de tenté un chemin relatif dans ce cas là... Comme le dit fregolo52, rien ne dit que le dossier courant est le dossier de l'exécutable.
Je pense qu'il faut plutôt récupérer le chemin de l'exe à l'aide de GetModuleFileName, puis construire le chemin vers le chm à partir de celui-ci.
Mais plutôt que d'utiliser ShellExecute, il est souvent préférable
d'employer CreateProcess, plus lourde à l'utilisation, mais tu peux
vérifier son code de retour, et afficher un message associé à la
dernière erreur Win32 en cas de problème. Exemple ici (Attention, démarrage avec SW_HIDE dans cet exemple, mettre SW_SHOW dans ton cas).
Vous n’avez pas trouvé la réponse que vous recherchez ?
<li>Application->ExeName - Fonction standard borland, donne le directory de l'application</li><li>Path est un type String comme le ExeName , String est une class avec de nombreuses méthode de manipulation de chaines.</li><li>Pour transformer un String en char * on fait ch.c_str()</li>