Comment définir “Exécuter ce programme en tant qu'administrateur” par programmation

Je vais avoir un problème avec good ol' bdeadmin.exe dans Vista. Tout d'abord, commençons par les des réactions prévisibles de la route:

"Vous ne devriez pas besoin de votre demande à être élevée."

Ce ne. C est la vie.

"Vous avez besoin d'incorporer un fichier de manifeste."

Il est déjà compilé, il est de nombreuses années, la société qui l'a créé n'a pas l'intention de le faire à nouveau, et il est installé à partir d'un Module de Fusion (fichier MSM).

"BDE est obsolète, vous devriez être en utilisant dbExpress"

Un et un demi-million de lignes de code. 'Nuff said.

"Déposer un fichier manifeste à côté de l'EXE."

Essayé et qui n'a rien fait. Comme un test, que même fichier de manifeste a été capable de faire plusieurs autres fichiers EXE exigent une élévation, mais pas celui que je voulais. Quelque chose là-dedans, c'est de prévenir l'externe manifeste d'être lu.

"Créer un raccourci et de définir SLDF_RUNAS_USER."

Peut pas le faire, c'est un applet du Panneau de configuration.

La seule chose qui a fonctionné a été mise en "Exécuter ce programme en tant qu'administrateur" sous l'onglet Compatibilité de sa fenêtre de Propriétés. Je ne devrais pas avoir à dire aux utilisateurs de le faire. Mauvais pour les affaires. J'ai besoin d'avoir le programme d'installation de ce faire. Le fichier MSM utilise un chemin d'accès statique.

  • La accepté de répondre a des emplacements du registre à lire pour les valeurs que vous voulez.
  • Concernant l' ~ pour Win 8: j'ai remarqué sur mon Win 7 que c'est un # (dièse), suivi d'un espace suivi par RUNASADMIN, donc en effet le plus probable, c'est un ~ (tilda) sur Win 8. Et (qui sait qui nouveau symbole) sur windows 10...
  • Pas besoin de recompiler (ou rétablir le lien) juste pour incorporer un manifeste. C'est une ressource régulière, vous pouvez ajouter, comme toute autre ressource. À moins que le binaire est signé numériquement et ne peut pas être modifié, ce serait le droit avant la solution. Re-emballage ce dans un nouveau Module de Fusion devrait être faisable aussi.
InformationsquelleAutor Patrick | 2010-02-22