2010-03-22 28 views
1

à l'aide Inno Setup J'ai actuellement l'entrée suivante dans la section [ICONS]:Comment créer un raccourci vers CMD.EXE qui demande l'élévation en utilisant INNO Setup?

Name: "{group}\My App\My App - Command Prompt"; Filename: "cmd.exe"; WorkingDir: "{app}" 

Ce raccourci lance une invite de commande directement dans le dossier de ma demande. Malheureusement, il n'est pas lancé comme élevé, ce qui signifie que les commandes que l'utilisateur exécute à partir de là n'ont pas les droits appropriés. Utilisation de la configuration INNO, comment puis-je créer un raccourci vers CMD.exe (dans un dossier spécifique) qui nécessite une élévation?

Cela peut être fait pour d'autres applications via un fichier manifeste. Ma question est, comment puis-je l'utiliser en utilisant INNO, et si je ne peux pas, quelles sont mes alternatives?

+0

Voulez-vous dire administration droit? Vous pouvez définir cela à l'aide de l'objet COM (CreateComObject (CLSID_ShellLink)). – Sasha

Répondre

2

La propriété administrative d'un raccourci est un paramètre de compatibilité, vous n'êtes pas censé le définir par programme. Les commandes que l'utilisateur exécute doivent demander eux-mêmes les privilèges d'administration en ayant le manifeste approprié. L'utilisateur peut également choisir de s'élever en cliquant droit sur le raccourci et en choisissant Exécuter en tant qu'administrateur.

Si vous voulez toujours élever immédiatement de toute façon, vous pouvez placer un petit utilitaire dans votre dossier d'application marqué avec un manifeste administratif. Tout cet utilitaire ferait est spawn cmd.exe. De cette façon, vous pouvez éviter de jouer avec les paramètres de compatibilité.

Si vous voulez continuer à utiliser les paramètres de compatibilité, jetez un oeil à la HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Couches et HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ clés de Registre Couches . Vous pouvez également utiliser le support IUnknown intégré d'Inno Setup, mais cela demande plus de travail. Voir le script exemple CodeAutomation2.iss et http://social.msdn.microsoft.com/Forums/en-US/windowssecurity/thread/a55aa70e-ae4d-4bf6-b179-2e3df3668989