I. Quel peut être l'impact de l'activation du contrôle de compte utilisateur (UAC) sur votre application si elle ne le prend pas en charge ?

- Redirection des écritures dans un répertoire Virtuel
- L'application ne fonctionne plus, avec des accès refusés en écriture

Lorsque vous vous connectez à un poste Windows 7, par défaut, vous vous connectez en tant qu'utilisateur standard, même si les informations de connexion que vous utilisez, sont celles d'un compte administrateur. Vos applications, tourneront dans le contexte de cet utilisateur. Hors, les comptes utilisateur standard, n'ont plus accès aux répertoires, Windows, Program Files, la racine (ex C), et ont accès en lecture seul à HKEY_LOCAL_MACHINE. Si votre application écrit dans ces locations, deux cas figures se présentent à vous :

  1. Votre application est une application 32 Bits, alors, Windows 7 redirigera (virtualisera) toutes les écritures, dans le répertoire VirtualStore (ex. C:\Users\[NomUtilisateur]\AppData\Local\VirtualStore\).
  2. Si votre application est une application 64 Bits, la virtualisation n'existant pas sur Windows 7 64 bits, vos applications ne fonctionneront plus comme avant et auront des accès refusés.

Dans les deux cas, il est important que vos applications prennent en charge l'UAC, car la virtualisation ne sera sans doute pas supportée dans de futures versions de Windows.

Pour prendre en charge l'UAC, il suffit d'ajouter un fichier manifeste à votre application, comme expliqué dans l'atelier du coach Windows 7 http://msdn.microsoft.com/fr-fr/windows/msdn.coach.windows7.compatibilite.atelier2.aspx

Si vous souhaitez toujours écrire dans ces répertoires protégés, il faut que ce manifeste indique que votre application tourne avec les droits administrateurs. Néanmoins, il est préférable d'éviter d'écrire dans ses répertoires protégés, mais plutôt d'écrire dans le répertoire c:\ProgramData comme illustré dans le coach Windows 7.

Pour plus d'infos :