Lancement d'un fichier help.chm [Résolu]

Signaler
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
-
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
-
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

Messages postés
76
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
10 août 2010

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
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
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 :)
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
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
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
@ 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
Messages postés
76
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
10 août 2010

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
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
@ 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
Messages postés
76
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
10 août 2010

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
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
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
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
@ 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