Lancement d'un fichier help.chm

Résolu
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 - 11 août 2007 à 10:24
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 - 12 août 2007 à 10:41
Bonjour à toutes et à tous,

Je réalise une application avec un dossier "Help" et son fichier "Aide.chm", cela fonctionne correctement lorsque je clique sur le bouton de l'appel de l'aide :

ShellExecute(0, 'open', 'Help\Aide.chm', nil, nil, SW_SHOWNORMAL);

Si je réalise directement un raccourci sur le bureau, cela fonctionne aussi (logique en principe).

Maintenant je réalise une installation avec le logiciel "InnoSetup" et je crée un icone sur le bureau.

"[Files]
Source: "C:\Data\Delphi\2007\Test help\projectTest.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Data\Delphi\2007\Test help\Help\*"; DestDir: "{app}\Help"; Flags: ignoreversion recursesubdirs createallsubdirs"

En fin d'installation, l'application s'ouvre et j'appelle mon fichier "Help" cela fonctionne.

J'utilise le raccourci créé sur le bureau avec l'installation, l'application fonctionne mais pas l'accès à l'aide.

La commande est elle exacte ?

Merci de votre attention,

@+,

Cincap

[url]mailto:/url

9 réponses

cs_PHIL63 Messages postés 76 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 août 2010
11 août 2007 à 11:10
La commande pour afficher une icône sur le bureau avec Inno Setup est la suivante :

[Icons]
Name: "{userdesktop}\Nom affiché sous l'icône"; Filename: "{app}\Nom du fichier exécutable"; WorkingDir: "{app}"
Ne pas oublier de renseigner le dossier de travail (WorkinDir)

Philippe DROUET
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
11 août 2007 à 13:39
pour creer un script d'installation avec innosetup :

creer un repertoire 'install' dans le repertoire du projet :

X:\Mon Projet\Install

il contiendrat le fichier ISS et aussi les ressources d'installation (icone de programme, bitmap, licence)

ensuite :

[Dirs]
Name: "{app}\Help"

[Files]
Source: "..\HelpTest.exe";  DestDir: "{app}";      Flags: ignoreversion
Source: "..\Help\Help.chm"; DestDir: "{app}\Help"; Flags: ignoreversion

[Icons]
Name: "{group}\HelpTest"; Filename: "{app}\HelpTest.exe"
Name: "{group}\Help";     Filename: "{app}\Help\Help.chm"
Name: "{group}\Uninstall HelpTest"; Filename: "{uninstallexe}"

Name: "{userdesktop}\HelpTest"; Filename: "{app}\HelpTest.exe"; Tasks: desktopicon

Name: "{userdesktop}\Help\Help.chm"; Filename: "{app}\Help\Help.chm"; Tasks: desktopicon










ça :

Source: "C:\Data\Delphi\2007\Test help\Help\*"; DestDir: "{app}\Help"; Flags: ignoreversion recursesubdirs createallsubdirs"

c'est pas necessaire pour 2 fichiers :)
3
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
12 août 2007 à 10:41
Bonjour à toutes et à tous,

Pour celui que cela intéresse, Innosetup lorsqu'il crée l'icone sur le bureau, cet icone est relatif à l'ouverture de l'application.


Par ce biais, l'appel de l'aide qui se trouve dans un sous dossier ne peut se faire que si dans l'application le code relate l'endroit de cette aide.

J'ai donc fait un test avec 3 boutons en gardant le même code pour InnoSetup (1er topic), et seulement les boutons 2 et 3 fonctionnent dans tous les cas de figure,

a) soit après l'install,
b) avec l'icone placé sur le bureau,
c) par le bouton démarrer,
d) directement dans le dossier créé dans ProgramFiles.

Bouton 1 =

procedure TForm1.Btest1Click(Sender: TObject);
begin
ShellExecute(0, 'open', 'Help\Aide.chm', nil, nil, SW_SHOWNORMAL);
end;

Ne fonctionne qu'avec les poins a) et d)

Bouton 2 =

procedure TForm1.Btest2Click(Sender: TObject);
var
nomi : string;
chappli : string;
begin
chappli := ExtractFilePath(Application.ExeName);
nomi := chappli+'Help\Aide.chm';
HtmlHelp(Application.Handle,PChar(nomi), //::/video.htm
      HH_DISPLAY_TOPIC, 0);
end;

Fonctionne avec les points a) à d)

Bouton 3 =

procedure TForm1.Btest3Click(Sender: TObject);
var
nomi : string;
chappli : string;
begin
chappli := ExtractFilePath(Application.ExeName);
nomi := chappli+'Help\Aide.chm';
ShellExecute(0, 'open', PChar(nomi), nil, nil, SW_SHOWNORMAL);
end;

Fonctionne avec les points a) à d)

Je cloture donc le topic, merci de votre aide à tous.

@+,

Cincap

[url]mailto:/url
3
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
11 août 2007 à 11:23
@ Phil63, Voici ce que j'ai mis :


[Icons]
Name: "{group}\projectTest"; Filename: "{app}\projectTest.exe"
Name: "{group}\{cm:UninstallProgram,projectTest}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\projectTest"; Filename: "{app}\projectTest.exe"; Tasks: desktopicon.

L'icon se crée bien, et l'application fonctionne correctement !

Ce n'est que l'appel du fichier Help qui ne fonctionne pas uniquement avec le raccourci créé pendant l'installation.

Si je crée un raccourci manuellement, cela fonctionne.

Je pense que le problème vient du ShellExecute.

Merci,

@+,

Cincap

[url]mailto:/url
0

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

Posez votre question
cs_PHIL63 Messages postés 76 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 août 2010
11 août 2007 à 12:01
Je ne vois pas dans tes lignes la partie 'WorkinDir', essaie ça :

Name: "{commondesktop}\projectTest"; Filename: "{app}\projectTest.exe";  WorkingDir: "{app}"

Avec Inno Setup, le dossier de travail n'est pas automatiquement avec le chemin de l'application lors de la création du raccourci.

Philippe DROUET
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
11 août 2007 à 12:54
@ Phil63, Ok maintenant pour le raccourci sur le bureau, ok pour l'application avec l'Exploreur directement dans "C:\Program Files\test" mais par contre maintenant par le menu Démarrer, Tous les programmes, projetTest, projettest.exe, l'aide ne fonctionne pas avec cette ligne.

Donc mystère.


@+,


Cincap

[url]mailto:/url
0
cs_PHIL63 Messages postés 76 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 août 2010
11 août 2007 à 13:15
Comme pour le raccourci sur le bureau... ajoute ;  WorkingDir: "{app}" à la fin de la ligne ce qui donne :

Name: "{group}\projectTest"; Filename: "{app}\projectTest.exe";  WorkingDir: "{app}"

Ca devrait fonctionner (le problème doit être le même : pas de dossier de travail de mentionné)

Philippe DROUET
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
11 août 2007 à 20:35
Bonsoir à toutes et à tous,

@ Foxi, en gardant mon code du 1er topic et en modifiant la commande du click pour le fichier *.chm, je n'ai plus ce problème, tout fonctionne.

procedure TFPrincipale.bhelpClick(Sender: TObject);
var
nomi : string;
chappli : string;
begin
chappli := ExtractFilePath(Application.ExeName);
nomi := chappli+'Help\Aide.chm';
HtmlHelp(Application.Handle,PChar(nomi), HH_DISPLAY_TOPIC, 0);
end;

Merci aussi pour ton aide, je testerai quand même avec ta solution.

@+,

Cincap

[url]mailto:/url
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
11 août 2007 à 20:52
@ Foxi, je viens de tester ton code et j'ai le même problème.

J'ai placé 2 boutons sur ma fiche pour appeller l'aide, un avec le code :

ShellExecute(0, 'open', 'Help\Aide.chm', nil, nil, SW_SHOWNORMAL);

Et l'autre avec :

var
nomi : string;
chappli : string;
begin
chappli := ExtractFilePath(Application.ExeName);
nomi := chappli+'Help\Aide.chm';
HtmlHelp(Application.Handle,PChar(nomi), HH_DISPLAY_TOPIC, 0);
end;

Dans InnoSetup, le même code qu'au départ et la avec l'icone sur le bureau seul le 2ième bouton fonctionne pour appeller l'aide.

@+,

Cincap 

[url]mailto:/url
0
Rejoignez-nous