|
|
|
|
|
- Présentation
- FAQ
- Sous Windows Vista/7/8, je lance mon application avec les privilèges "Administrateur" et je perds mes connexions réseau. Pourquoi mes lettres de lecteur ne sont plus utilisables ?
- Windows Vista/7/8 n'autorise plus l'écriture dans "C:\Program Files". Comment prendre en compte cette contrainte dans mon application ?
- Windows Vista/7/8 n'autorise plus l'écriture dans "HKEY_LOCAL_MACHINE\Software". Comment prendre en compte cette contrainte dans mon application ?
- J'utilise les commandes INIEcrit et INILit sans préciser de chemin sous Windows Vista/7/8. Bien que mon application fonctionne, le fichier INI n'est jamais créé dans le répertoire Windows. Pourquoi ?
- J'ai réalisé une aide contextuelle au format hlp. Cette aide ne se lance pas sous Vista/7/8. Comment faire ?
FAQ à propos de Windows Vista et supérieur
Cette page d'aide présente une liste des problèmes recensés pour Windows Vista (et supérieur). Cette liste est évolutive et sera mise à jour à chaque version. Sous Windows Vista/7/8, je lance mon application avec les privilèges "Administrateur" et je perds mes connexions réseau. Pourquoi mes lettres de lecteur ne sont plus utilisables ? Il s'agit d'une option de sécurité de Windows Vista/7/8 et de son UAC. Lorsque les privilèges de l'utilisateur sont augmentés, les lecteurs réseau sont déconnectés. Pour que vous puissiez continuer à les utiliser, il faut les reconnecter spécifiquement. Utilisez pour cela la fonction RéseauConnecte. Exemple :
RéseauConnecte("S:", "\\Serveur\partage", "user", "password")
Note : Les paramètres utilisateur et mot de passe sont obligatoires dans ce cas car Windows considère que l'utilisateur a changé. Windows Vista/7/8 n'autorise plus l'écriture dans "C:\Program Files". Comment prendre en compte cette contrainte dans mon application ? Pour les applications utilisant des fichiers HFSQL en local, il est maintenant nécessaire d'utiliser le répertoire Windows prévu à cet effet. Dans le cas de Vista/7/8, il s'agit de "C:\ProgramData". Pour cela, inspirez-vous du code suivant :
sRepDonnees est une chaîne
sRepDonnees = ComplèteRep(SysRep(srAppDataCommun)) + fExtraitChemin(ExeInfo(exeNom), fFichier)
fRepCrée(sRepDonnees)
HChangeRep("*", sRepDonnees)
HCréationSiInexistant("*")
Windows Vista/7/8 n'autorise plus l'écriture dans "HKEY_LOCAL_MACHINE\Software". Comment prendre en compte cette contrainte dans mon application ? Vous utilisez une application sans privilèges (mécanisme de l'UAC) et donc vous n'avez pas le droit d'écrire dans la clé "HKEY_LOCAL_MACHINE\Software". Dans ce cas, Windows écrit votre clé dans un autre répertoire : il s'agit de la "Virtualisation de la base de registre". La clé utilisée par Windows est la suivante : "HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE". Pour plus de détails, consultez Mécanisme de l'UAC. Pour ne pas avoir ce problème, il est conseillé d'écrire la clé de votre application dans une autre clé de la base de registre. Vous pouvez également donner les privilèges Administrateur à votre application (en intégrant un manifeste lors de la création de l'exécutable). Attention : Si plusieurs applications partagent des mêmes renseignements dans la base de registre, ces applications doivent utiliser les mêmes privilèges "Administrateur", ou plus simplement, les entrées dans la base de registre doivent être accessibles par les différentes applications. J'utilise les commandes INIEcrit et INILit sans préciser de chemin sous Windows Vista/7/8. Bien que mon application fonctionne, le fichier INI n'est jamais créé dans le répertoire Windows. Pourquoi ? Vous utilisez une application sans privilèges (mécanisme de l'UAC) et donc vous n'avez pas le droit d'écrire dans le répertoire de Windows ou dans le répertoire "Program Files". Dans ce cas, Windows écrit votre fichier ".INI" dans un autre répertoire : il s'agit de la "Virtualisation des fichiers". Le répertoire utilisé par Windows est le suivant : "C:\Users\<LOGIN>AppData\Local\VirtualStore\Windows\". Pour plus de détails, consultez Mécanisme de l'UAC. Pour ne pas avoir ce problème, il est conseillé d'écrire le fichier ".INI" de votre application dans un répertoire différent. Vous pouvez par exemple utiliser le répertoire commun des applications (connu avec la fonction SysRep). Vous pouvez également donner les privilèges Administrateur à votre application (en intégrant un manifeste lors de la création de l'exécutable). Attention : Si plusieurs applications partagent un même fichier .INI, ces applications doivent utiliser les mêmes privilèges "Administrateur", ou plus simplement, le fichier ".INI" doit être présent dans un répertoire accessible par les différentes applications. J'ai réalisé une aide contextuelle au format hlp. Cette aide ne se lance pas sous Vista/7/8. Comment faire ? Actuellement, Windows Vista (et supérieur) ne contient pas le lanceur de l'aide au format Hlp (WinHelp32.exe). Les fichiers d'aide au format HLP ne sont pas utilisables sous Windows Vista (et supérieur). Une version de ce programme pour Windows Vista est actuellement en téléchargement dans le centre de téléchargement du site de Microsoft.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|