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

Langage Delphi Discussion :

TMemInifile et virtualstore


Sujet :

Langage Delphi

  1. #1
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 502
    Points : 3 133
    Points
    3 133
    Par défaut TMemInifile et virtualstore
    Bonjour,

    Mon application est installée dans c:\program files\monappli
    A côté de l'exe, un fichier ini que je lis au démarrage de l'application avec TMemInifile.
    Depuis ce matin, la lecture ne renvoie pas ce qui est dans le fichier.
    A force de ne pas comprendre et à tout retourner, j'ai fini par voir qu'au lieu de lire mon fichier ini, il va en lire une ancienne version dans appdata\local\virtualstore\program files

    Comme j'aimerais bien que les utilisateurs du soft ne se trouvent pas face au même problème, quelqu'un saurait-il si on peut désactiver cette fonctionnalité de Windows pour mon exe ??

    A défaut, je rajouterai un bout de code pour vérifier la présence d'un doublon et pour le supprimer au besoin, mais si il y a plus "simple", je suis preneur

  2. #2
    Invité
    Invité(e)
    Par défaut
    Lors de la création de ton TMemInifile, tu lui donnes comment l'endroit de ton fichier ?

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 502
    Points : 3 133
    Points
    3 133
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      CheminExecutable := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)));
      NomFichierIni := CheminExecutable + 'Mob.ini';
      FichierIni  := TMemIniFile.Create(NomFichierIni);
      FURLServeur := FichierIni.ReadString('Distant', 'URLServeur', '');
    quand j'affiche mes variables, toutes sont correctes.

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 502
    Points : 3 133
    Points
    3 133
    Par défaut
    apparemment, ce genre de problème se résout avec un manifest ajouté à l'application.
    Je vais tenter ça.

  5. #5
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Un utilisateur standard n'a pas les droits d'ecrire dans program files.
    Donc soit tu donne accès a ton dossier (click droit > propriétés > sécurité) et tu autorise les modification pour l'utilisateur,
    soit (solution recommandée par Microsoft) tu stock tes données dans %AppData% ou %ProgramData%
    Tu peux te renseigner sur les virtualStore (dossier et base de registre) qui sont liés à l'UAC (User Account Control)

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 502
    Points : 3 133
    Points
    3 133
    Par défaut
    Je n'écris jamais dans ce fichier avec Delphi. Je ne fais que le lire.

    Par contre, il m'arrive de le modifier avec notepad++. Ceci explique peut-être cela ?

  7. #7
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Citation Envoyé par Papy214 Voir le message
    Par contre, il m'arrive de le modifier avec notepad++. Ceci explique peut-être cela ?
    C'est possible.
    Des que tu sauves le fichier sans les droits, il va être ajouté dans le virtual store.
    Une fois que ton fichier est dans le virtual store, toutes les lectures se feront dorénavant sur ce fichier et plus sur l'autre. Tu n'as qu'a supprimer le fichier dans le virtual store, et il réutilisera l'officiel.
    Pour le modifier, tu l'ouvres en admin avec notepad++, ou tu changes les droits dessus.

Discussions similaires

  1. EasyPhp et Virtualstore
    Par Schmol44 dans le forum Windows 7
    Réponses: 0
    Dernier message: 21/01/2013, 16h08
  2. Réponses: 5
    Dernier message: 24/06/2005, 12h36

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