Comment faire en sorte qu'une applet du panneau de configuration Delphi ne soit pas une "légitimité"?

StackOverflow https://stackoverflow.com/questions/1612665

  •  06-07-2019
  •  | 
  •  

Question

J'ai un fichier .CPL Delphi écrit actuellement avec Delphi 7 qui doit mettre à jour les paramètres dans HKLM (pour pouvoir être utilisé par une application de service) et qui doit prendre en charge Vista, Win7 et Server 2008. Actuellement, vous pouvez le faire en ajoutant un fichier RUNASADMIN. valeur à AppCompatFlags / Layers, en utilisant le fichier CPL comme nom de valeur. Windows est alors invité à demander une élévation pour un "applet du panneau de configuration hérité".

Je dois trouver un moyen de construire la CPL dans Delphi 2010 sans que celle-ci ne semble être "héritée" et, si possible, de ne pas exiger le paramètre de registre ou l'élévation. Ajout de la ressource de manifeste habituelle à la DLL / CPL référençant Common-Controls v6 et "requireAdministrator" ne résout pas le problème: aucune élévation n'est demandée et l'accès HKLM échoue. Le fichier .CPL original et Delphi 2010 peuvent être exécutés correctement (après l’élévation) en naviguant vers le fichier dans SYSWOW64, en cliquant avec le bouton droit de la souris et en exécutant "en tant qu’administrateur".

Plus tard: j'ai trouvé une explication succincte expliquant pourquoi vous ne pouvez pas élever une DLL de cette façon dans un forum qui publie ici .

Était-ce utile?

La solution 2

Je pense avoir trouvé une meilleure réponse à ma question. Il existe un animal comme un applet de panneau de commande non hérité, décrit dans MSDN ici . "Maintenant, dans Windows Vista, vous pouvez ajouter votre propre applet au Panneau de configuration en créant un fichier exécutable pour votre applet et en l'enregistrant, au lieu de vous ennuyer à créer un fichier .cpl."

Autres conseils

Je pense que vous devez utiliser l'élévation COM. Il y avait un blog merveilleux sur ce qui semble avoir été prise vers le bas, mais le code source derrière l'affichage est toujours disponible sur les composants VCL site Web .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top