Inno Setup est un bon programme d'installation facile à utiliser. Il est noté haut dans this stackoverflow question. J'ai besoin d'installer un plugin dans un dossier relatif au dossier d'installation d'une application tierce. Ce n'est pas évident de la part des docs comment faire cela.Comment utiliser Inno Setup pour installer un plugin/fichier dans un dossier basé sur une entrée de registre?
1
A
Répondre
4
Vous pouvez trouver la réponse à l'installation facultative d'un fichier en utilisant une entrée de registre dans la documentation et dans l'exemple de code, mais cela peut ne pas être évident. Voici quelques exemples de fragments de script utilisant un Adobe Premiere Plugin comme exemple:
les étapes clés sont les suivants:
1) utiliser la vérification: paramètre
2) Ecrire une fonction qui appelle RegQueryStringValue et analyser le chemin pour construire la destination du dossier plugin relatif
3) utiliser {code:} pour appeler une fonction pour retourner le dossier de destination
//
// Copy my plugin file to the Premiere Plugin folder, but only if Premiere is installed.
//
[Files]
Source: "C:\sourceFiles\myplugin.prm"; Check: GetPremierePluginDestination; DestDir: "{code:PluginDestination}"; Flags: ignoreversion overwritereadonly
[Code]
var sPluginDest : String;
//
// Search for the path where Premiere Pro was installed. Return true if path found.
// Set variable to plugin folder
//
function GetPremierePluginDestination(): Boolean;
var
i: Integer;
len: Integer;
begin
sPluginDest := '';
RegQueryStringValue(HKLM, 'SOFTWARE\Adobe\Premiere Pro\CurrentVersion', 'Plug-InsDir', sPluginDest);
len := Length(sPluginDest);
if len > 0 then
begin
i := len;
while sPluginDest[i] <> '\' do
begin
i := i-1;
end;
i := i+1;
Delete(sPluginDest, i, Len-i+1);
Insert('Common', sPluginDest, i);
end;
Result := len > 0;
end;
//
// Use this function to return path to install plugin
//
function PluginDestination(Param: String) : String;
begin
Result := sPluginDest;
end;
Je ne suis pas un programmeur Pascal alors des suggestions sur la prise de GetPremiereDestination plus efficaces sont les bienvenus.
Questions connexes
- 1. conditionnellement installer les pilotes 64 bits avec Inno Setup
- 2. Comment créer un fichier texte dans Inno Setup?
- 3. Comment générer un nouveau GUID dans Inno Setup?
- 4. Pointeurs de fonction dans Inno Setup
- 5. Comment puis-je obtenir une valeur de registre dans Inno Setup lorsque la valeur utilise uniquement le nom par défaut?
- 6. Inno setup: cacher les fichiers
- 7. Codes de retour msi dans Inno Setup
- 8. Exécution d'un autre programme d'installation dans une installation Inno Setup
- 9. Comment convertir une valeur de version de chaîne en valeur numérique dans Inno Setup Scripts?
- 10. comment installer et utiliser un plugin basé sur javascript sur rails?
- 11. Quelqu'un connaît un script d'installation .NET Framework 2.0 solide pour Inno Setup?
- 12. Comment annuler le programme d'installation avec Inno Setup?
- 13. Comment supprimer une entrée de registre de Windows 2008/Vista
- 14. Inno Setup: Désinstaller le serveur Dll
- 15. Ajout d'assemblages au GAC depuis Inno Setup
- 16. Comment utiliser un champ d'index pour supprimer une entrée?
- 17. Comment puis-je obtenir un msi (VS Setup Project) pour installer un composant Windows?
- 18. pygtk + py2exe + Inno Setup -> icône de raccourci
- 19. Comment installer un MIDlet sur un téléphone SonyEricsson directement dans le dossier Organizer
- 20. Comment utiliser une pièce intelligente dans un site d'authentification basé sur un formulaire dans un point de partage
- 21. Projet VS Setup; Comment restaurer une valeur de registre lors de la désinstallation?
- 22. Comment supprimer une entrée de registre dans Windows x64 dans l'arbre 64 bits sans utiliser RegDeleteKeyEx en C++?
- 23. Ajout d'une application à OpenWithList avec Inno Setup
- 24. PHP: Création d'un dossier dans le registre
- 25. Comment écrire un transport personnalisé basé sur socket pour WCF
- 26. WiX Show Dialog basé sur la fonction à installer
- 27. Comment passer des commandes à une console Cygwin sous Windows en utilisant Inno Setup
- 28. Inno Configuration en tant que bootstrapper pour .msi
- 29. Comment fonctionne une machine virtuelle basée sur un registre?
- 30. Comment utiliser un crochet de validation de démarrage dans TortoiseSVN pour configurer une entrée de journal personnalisée?