2017-05-19 3 views
1

J'ai du mal à obtenir Inno setup (5.5.9u) pour créer un raccourci sur le bureau qui a une icône et a la propriété avancée de "Exécuter en tant qu'administrateur " set.Inno Configuration raccourci bureau (lien) qui a "Exécuter en tant qu'administrateur" ensemble de propriétés avancées

Problème

Cette question, est un peu différent que: How to set 'Run as administrator' on a file using Inno Setup

Depuis que je suis en train de faire est de lancer pas un programme au moment de l'installation avec des droits d'administrateur, (installation est déjà en cours d'exécution à Admin), mais laissez un lien sur le bureau qui a la propriété avancée de "Exécuter en tant qu'administrateur".

Exemple de code

[Icons] 
Name: "{group}\EGPL Watson Uninstall"; Filename: "{uninstallexe}"; WorkingDir: "{app}" 
Name: "{commondesktop}\DashBoard"; \ 
    Filename: "{app}\dashboard\node_modules\electron\dist\electron.exe main.js"; \ 
    WorkingDir: "{app}\dashboard"; IconFilename: "{src}\dashboard\build\configure.ico" 
+0

@MartinPrikryl Vous avez encore raison. C'était trois questions distinctes. Mais cette fois-ci au cas où il y aurait une interconnexion, je ne voulais pas être signalé comme un doublon, car ils pourraient avoir toutes les mêmes solutions. J'ai résolu le milieu en prenant "main.js" hors du nom de fichier et en le mettant dans un paramètre. Je vais réécrire cette question pour traiter avec le drapeau de l'administrateur –

+0

@MartinPrikryl Je l'ai dit à l'origine c'était trois questions. Je l'ai maintenant formulé comme un. –

+0

@MartinPrikryl J'ai essayé votre solution # 2 et cela fonctionne. Je suggère que depuis # 2 à (http://stackoverflow.com/questions/16978917/how-to-set-run-as-administrator-on-a-file-using-inno-setup) n'est pas la solution acceptée à ce lien, a moins de votes, et s'applique vraiment plus à ce cas ci-dessus. Je vous suggère de le poser comme une réponse à cette question et je vais l'accepter et le voter. Cela vous semble-t-il bon? –

Répondre

1

Inno Setup ne supporte pas nativement.

L'indicateur "Exécuter en tant qu'administrateur" est un peu le fichier .lnk. Voir:

Vous pouvez définir le bit en utilisant le code suivant:

[Icons] 
Name: "{userdesktop}\My Program"; Filename: "{app}\MyProg.exe"; \ 
    AfterInstall: SetElevationBit('{userdesktop}\My Program.lnk') 

[Code] 

procedure SetElevationBit(Filename: string); 
var 
    Buffer: string; 
    Stream: TStream; 
begin 
    Filename := ExpandConstant(Filename); 
    Log('Setting elevation bit for ' + Filename); 

    Stream := TFileStream.Create(FileName, fmOpenReadWrite); 
    try 
    Stream.Seek(21, soFromBeginning); 
    SetLength(Buffer, 1); 
    Stream.ReadBuffer(Buffer, 1); 
    Buffer[1] := Chr(Ord(Buffer[1]) or $20); 
    Stream.Seek(-1, soFromCurrent); 
    Stream.WriteBuffer(Buffer, 1); 
    finally 
    Stream.Free; 
    end; 
end; 

testé sur la version Unicode de Inno Setup. Mais il devrait, encore plus naturellement, fonctionner sur la version Ansi aussi.