Bonjour,
Je suis sous Windows XP, mais je voudrais qu'en exportant mon appli sur un ordi sous Windows 7, elle y fonctionne avec les privilèges administrateur (sans la lancer par clic droit puis sélection mode administrateur) en la lançant par simple double clic. Je suis allé voir le site de msn ainsi que quelques discussions sur Internet et voila ci-dessous ce que j'ai fait:
Création du fichier manifest.xml ci-dessous:
//*******************************************************
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.1.1.1" processorArchitecture="X86"
name="mxj.exe" type="win32" />
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
//********************************************************
Création d'un fichier manifest.rc ci-dessous:
//********************************************************
#include <windows.h>
#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#endif
#ifndef RT_MANIFEST
#define RT_MANIFEST 24
#endif
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "manifest.xml"
//**********************************************************
Compilé mon appli mxj.cpp avec Borland bcc32.exe
Compilé mon appli manifest.rc avec Borland brc32.exe
Linké mxj.obj et manifest.res avec Borland ilink32.exe
Aucune erreur de compile, aucune erreur de linkage.
J'ai ensuite lancé mon appli mxj.exe, elle s'exécute normalement sans aucune différence avec avant, j'ai déjà dit que j'étais sous Windows XP version familiale et que je n'ai pas besoin de privilèges car je n'ai pas de virtualisation et j'avais déjà accès sans protection particulière aux registres. Je vérifiais seulement que mon appli avec maintenant le fichier manifest intégré marchait toujours.
Maintenant deux questions:
1.- Mon fichier manifest est-il correct, car comme je n'ai fait que recopier à droite à gauche je n'ai aucune idée si ma syntaxe est correcte et si elle sera efficace ? (je n'ai par exemple aucune idée de la validité des références placées derrière les deux paramètres xmlns ou version)
2.- Si j'exporte mon mxj.exe sur un ordi en windows 7 est-ce qu'il fonctionnera avec le privilège administrateur par simple lancement par double-clic (pas de clic droit) et sans avoir besoin de le recompiler sur cet ordi en windows 7 ? (pour info mon appli mxj.exe fonctionnait déjà sous windows 7 avant d'intégrer le fichier manifest mais à condition de le lancer par clic droit et privilèges administrateur).
Merci