Bonjour,

Ceci est une simple contribution pour diffuser une information que je trouve importante et concernant la virtualisation des fichiers de données sous Windows 7 et Vista (Virtuastore).

Le contexte : Une application qui fonctionne parfaitement sous XP peut poser des problèmes sous Windows 7 ou Vista. Notamment, en raison du renforcement de la sécurité du système et de nouvelles contraintes de programmation.

L'une d'elle étant que les fichiers de données ne doivent pas être stocké dans un répertoire nécessitant des droits spécifiques pour y accéder en écriture.

Bien qu'ayant respecté cette règles à la lettre (fichiers d'application dans le dossier des applications et fichiers de données dans le fichiers destiné aux données communes des utilisateurs) j'avais malgré tout un problème persistant de virtualisation des fichiers de données et cela peut poser des problème, notamment à l'occasion de la mise à jour des structures de fichier.

Après avoir longuement chercher par moi même, j'ai consulté le service technique de Pcsoft et ils m'ont fournis la solution et surtout le pourquoi du problème.

1 - Le code que j'utilisais et à l'origine du problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
//Fichiers de données 
HCréationSiInexistant ( "*" ) 
 
//Localisation des données. 
SI EnModeTest () = Faux ALORS 
       HChangeRep ( "*" , SysRep ( srAppDataCommun ))
FIN
2 - Le code proposé par Pcsoft pour corriger le problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
//Localisation des données. 
SI EnModeTest () = Faux ALORS 
       HChangeRep ( "*" , ComplèteRep ( SysRep ( srAppDataCommun ))) 
       HGèreREP ( Vrai , ComplèteRep ( SysRep ( srAppDataCommun ))) 
FIN 
 
//Fichiers de données 
HCréationSiInexistant ( "*" )
3 - Les informations fournies par Pcsoft :
- Une fois ouverts, la localisation des fichiers ne peut pas être modifiée. Autrement dit et en ce qui concerne les fichiers de données, la fonction HCréationSiInexistant ( "*" ) ne doit pas être utilisée avant la fonction HchangeRep.
- La commande HGéreRep force le Framework WINDEV à écrire son fichier .rep (utilisé ensuite pour la mise à jour automatique des données lors de modifications de structure d’analyse) dans un répertoire quine sera pas virtualisé.

Voilà, peut être ces informations vous seront utiles= et c'était l'occasion pour moi de partager et de contribuer au forum.

Merci au service technique de Pcsoft.