Uac windows et delphi
Avec l’arrivée de VISTA, nous avons eu pour la plupart d’entre nous quelques ennuis de compatibilité avec nos programmes ou ceux que nous utilisons. La faute à qui me direz-vous !
A l’UAC (Contrôle de compte utilisateur), c’est du moins ce que l’on entend un peu partout sur les forums
Depuis quelques temps, pas mal d’infos sont disponibles sur les solutions à ces problèmes de compatibilité. Le but de cet article est de centraliser les informations disponibles et d’expliquer le plus simplement possible ce que fait l’UAC, pourquoi et comment elle le fait.
En découlera, pour nous programmeurs, ce qu’il est nécessaire d’ implémenter dans nos programmes Delphi, pour une prise en compte correcte de l’UAC et ainsi contribuer à la sécurité du système de nos utilisateurs.
Pourquoi UAC
La plateforme Windows a toujours été la cible de nombreux virus et autres joyeusetés. Placer judicieusement un verrou lorsque nécessaire est une action de nature à limiter l’exposition du système à du code malveillant.
La philosophie est assez simple. Elle se résume principalement en deux points :
1/ les données n’ont plus leur place dans certains répertoires comme program files, windows et system32 et dans une bonne partie de la registry.
Tout programme existant ne remplissant pas ce premier point ne se comportera pas sous VISTA de manière similaire à XP. Même avec le lancement du programme en mode administrateur vous n’avez aucune garantie que le code s’exécutera correctement, puisque :
Les écritures à destination d’un répertoire protégé par L’UAC seront redirigées vers un répertoire virtuel situé sous \appdata\Local\VirtualStore….
Et
L’écriture des données à destination de la Registry subit le même sort. Elle est redirigée vers HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE.
Ces deux emplacements on été introduit pour assurer un certain niveau de compatibilité, force est de constater que même si la