IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

La Vitualisation des fichier sous Windows 7 et Vista


Sujet :

Contribuez

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut La Vitualisation des fichier sous Windows 7 et Vista
    L'UAC de Windows 7 et Vista renforce la sécurité du système. Sur le principe, rien à dire. Mais dans les fait, cela se complique quand le fonctionnement n'est pas celui que l'on en attend.

    Essayez de placer des fichiers de données dans le répertoire "ProgramData" prévu à cet effet et vous découvrirez que Windows décidera peut être de virtualiser vos fichiers ! En d'autres termes, il en fera une copie dans le dossier "VirtualStore". Cela peut ne pas poser de problème sauf si vous décidez de mettre à jour les fichiers par exemple. Là, vous découvrirez très probablement que les fichiers Visualisés ne sont pas actualisés, seul l'original l'est ! Vous aurez beau essayer de forcer cette actualisation, rien ni fera car le répertoire VirtualStore est géré directement et seulement par Windows.

    Une des solutions pour résoudre le problème, les Manifestes de Windows mais ils ne sont pas sans imposer quelques contraintes (droits limités, demande de confirmation de lancement d'application...). Personnellement, je n'opte pas pour cela.

    Autre solution, composer avec les contraintes et les libertés que vous accorde Windows. A l'installation de l'application, stockez les fichiers de données dans un répertoire dédié à la racine de "C:" (vous pouvez le rendre invisible pour éviter les mauvaises manipulation de l'utilisateur). Ensuite, dans le code d'initialisation de votre application, utilisez la fonction "Hchangerep" pour rediriger l'application vers le répertoire en question. Et voilà, plus de problèmes de Virtualisation des fichiers de données, plus de problèmes de droits et pas besoin de manifeste.

    Cette solution n'est pas idéal car elle oblige à ne pas utiliser le répertoire ProgramData de Windows mais Pcsoft n'étant pas en mesure de me fournir une explication qui tienne la route, il faut bien trouver une autre solution propre.

    A disposition.

    lololebricoleur
    Les solutions les plus simples sont les plus efficaces

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    Je n'ai absolument rien compris.
    Vous utilisez bien fRepDonnéesUtilisateur et fRepDonnéesCommun ?
    Pourquoi créer un répertoire à la racine de C: ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut
    Et bien je vais tenter de vous ré expliquer :

    Les applications que je développe, exploitent des fichiers de données. En toute logique et selon les conseils de Pcsoft, je stocke ces fichiers dans le répertoire prévus à cet effet ("C:\Documents and Settings\All Users\Application Data" sous Windows Xp et "C:\ProgramData" sous Windows 7 et Vista). Cela correspond à la constante système "srAppDataCommun" pour répondre à votre question.

    Les applications, quand à elles, sont stockées dans le dossier "ProgramFiles" sous Xp et "Program".

    Le problème c'est que quand je stocke les fichiers de données dans ce répertoire "ProgramData", Windows les virtualise et en fait une copie dans le "VirtualStore" alors qu'il n'y a pas lieu ! C'est même confirmé par Pcsoft pour info. De plus, ils ne trouvent pas la raison !

    Voilà pourquoi je suis obligé de laisser tomber le dossier "ProgramData", que je ne veux pas utiliser le dossiers destiné à stocker les documents de l'utilisateur (ce n'est pas fait pour cela et les mauvaises manipulations sont vites arrivées) et que donc je crée mon propre répertoire caché à la racine de C:.

    C'est plus clair cette fois ?
    Si vous avez la réponse au mystère, merci de me la transmettre.

    Cordialement,
    Les solutions les plus simples sont les plus efficaces

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut
    Citation Envoyé par Hibernatus34 Voir le message
    Vous utilisez bien fRepDonnéesUtilisateur et fRepDonnéesCommun ?
    Selon moi, les "fRepDonnéesUtilisateur" et "fRepDonnéesCommun" ne sont pas fait pour y stocker les données directement gérée par les applications. Ils correspondent au dossier "Mes documents" en fait. C'est d'ailleurs pour cela que le répertoire "srAppDataCommun" existe et qu'il est caché. J'ai effectivement réalisé des test avec ces dossier Données et le problème de virtualisation ne se pose pas. Mais personnellement, cette solution ne me convient pas.
    Les solutions les plus simples sont les plus efficaces

  5. #5
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    Je suis sous XP dans la journée donc je ne peux pas tester, mais pour moi les choses paraissent simples :
    - fRepDonnéesUtilisateur() : 1 utilisateur, 1 application
    - fRepDonnéesCommun() : tous les utilisateurs, 1 application
    - fRepGlobalUtilisateur() : 1 utilisateur, N applications
    - fRepGlobalCommun() : tous les utilisateurs, N applications

    La grande différence avec "Mes Documents", c'est que l'utilisateur n'est pas censé aller dans ces répertoires avec l'explorateur, même s'il le peut s'il est avisé.
    Prenez un ordinateur d'utilisateur lambda, et allez dans ces répertoires avec l'explorateur. C'est beaucoup moins rapide et facile que "Mes Documents". Du moins, pour l'utilisateur lambda. Et pour les autres, répertoires cachés ou pas, ils trouveront toujours.

  6. #6
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Citation Envoyé par lololebricoleur Voir le message
    Selon moi, les "fRepDonnéesUtilisateur" et "fRepDonnéesCommun" ne sont pas fait pour y stocker les données directement gérée par les applications.
    Il sont dédiés à ça pourtant.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut
    Je prend note des informations et je refais des tests.

    A suivre...
    Les solutions les plus simples sont les plus efficaces

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut Résultats de mes derniers tests...
    J'ai utilisé fRepDonnéesCommun() comme chemin de stockage de mes fichiers de données.

    Sous Windows 7 et Vista, fRepDonnéesCommun() correspond au répertoire ProgramData présent à la racine du disque système.

    Après installation, mes fichiers de données sont installés au bon endroit.
    Au lancement de l'application, j'utilise la fonction "ChangeRep" pour diriger l'application vers fRepDonnéesCommun().

    Résultat :
    Dès que j'apporte une modification à un des fichier de données, il est automatiquement dupliqué par Windows dans le VirtualStore !

    Conclusion, j'en suis toujours au même point et j'ai toujours le même soucis.
    Les solutions les plus simples sont les plus efficaces

  9. #9
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Je testerai dès que j'aurai accès à Win7.

    Je n'en suis pas certain, mais il me semble qu'il faut des privilèges pour écrire dans ProgramData.
    Et je pense (toujours pas sûr) que le bon protocole est le suivant :
    - L'installateur (qui a les privilèges) crée le répertoire.
    - Il donne le droit d'écriture à tout les utilisateurs pour ce répertoire.
    - L'application peut ainsi démarrer sans privilège, sous n'importe quel compte, et écrire dans le répertoire en question.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut
    Quand j'intègre un manifeste au fichier exe, le problème disparait. Mais cela implique une confirmation à chaque démarrage de l'application pour les utilisateurs ayant des droits d'administrateur.

    Les applications que je distribue sont utilisées par des petites entreprises qui ne sont, en général, pas très férues d'informatique. J'ai besoin que l’installation et l'utilisation soient simple.

    Je continue de chercher mais je ne trouve pas de solution idéale. Soit les fichiers sont virtualisés, soit ils sont stockés dans une répertoire inapproprié, soit j'ai des problèmes de droits et de messages de confirmation.

    En l'état, je reste sur la solution d'un répertoire caché et créé à la racine du disque système.
    Les solutions les plus simples sont les plus efficaces

  11. #11
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    J'ai regardé chez moi sur un Win7.
    Je n'ai rencontré aucun problème, rien n'est apparu dans VirtualStore, avec ou sans manifeste (manifeste sans privilèges).
    Mais mon compte appartient au groupe administrateur, qui est autorisé à écrire dans ProgramData.
    J'ai regardé les répertoires des autres applications (non WinDev) et certains avaient le droit d'écriture activé pour les autres utilisateurs.

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut Hibernatus,
    Merci de ta collaboration. J'ai réalisé des tests sur 2 ordinateurs en Windows 7. Notamment un petit portable avec un seul compte (cas classique pour les utilisateurs de mes applications).

    A l'installation, aucun problème, les fichiers sont installés dans le "Programdata". Au lancement de l'application, j'utilise la fonction Hcreesiinexistant, toujours aucun problème. Le problème apparait quand je modifie un fichier à partir de l'application. Par exemple, dans une table de données directement liée à un fichier et acceptant la saisie en cascade, dès que j'ajoute une ligne, le fichier est virtualisé.

    Pour information, je suis sans réponse de Pcsoft mis à part que ce n'est effectivement pas normal.

    Lien pour télécharger un projet test : http://www.megaupload.com/?d=F12TQJLK

    Dans le code d'initialisation du projet, j'utilise la fonction "HChangeRep" pour localiser les fichiers de données. En fonction du chemin indiqué, il y a des problèmes ou non.

    Si tu installe l'application et que tu l’exécute, si la fonction HChangeRep est pointée vers programdata, en utilisant le fenêtre 1 et en ajoutant des données, tu devrais constater l'apparition du fichier dans le virtualstore.
    Les solutions les plus simples sont les plus efficaces

  13. #13
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    N'ayant pas WD16 à la maison je n'ai pas pu tester ce projet.
    Mais le mien faisait exactement pareil : HChangeRep puis une table fichier avec saisie en cascade (le HCréation quant à lui était automatique).
    J'ai aussi testé la création d'un fichier texte.

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut
    Et voilà, nous en sommes toujours au même point, cela devrais fonctionner et cela fonctionne même dans certain cas. Et pourtant, dans mon cas et sur plusieurs ordinateurs cela ne fonctionne pas. Pire, les solutions préconisées par Pcsoft ne solutionne rien et depuis, plus de nouvelles du service technique.
    Les solutions les plus simples sont les plus efficaces

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 355
    Points : 509
    Points
    509
    Par défaut
    Au dernières nouvelles, le services technique de Pcsoft n'as d'explication claire et rationnelle à fournir !

    A suivre
    Les solutions les plus simples sont les plus efficaces

Discussions similaires

  1. Virtualisation des fichiers sous Windows 7 et Vista
    Par lololebricoleur dans le forum Contribuez
    Réponses: 0
    Dernier message: 17/06/2011, 13h12
  2. Réponses: 24
    Dernier message: 26/02/2009, 17h17
  3. Routines de gestion des ports sous Windows XP
    Par wiccanhelios dans le forum Windows
    Réponses: 2
    Dernier message: 14/11/2003, 09h02
  4. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 19h24
  5. Détourner des IRQ sous Windows
    Par Blustuff dans le forum Assembleur
    Réponses: 15
    Dernier message: 06/12/2002, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo