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

Free Pascal Discussion :

Access violation à l'ouverture d'un fichier [Free Pascal]


Sujet :

Free Pascal

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 57
    Points : 53
    Points
    53
    Par défaut Access violation à l'ouverture d'un fichier
    Bonjour.

    Je me trouve face à un curieux problème qui survient lors de la mise en production de l'application alors qu'elle fonctionnait bien avant.

    Le contexte est l'installation automatique dans Program Files (x86) à partir d'une archive auto-extractible.

    Je pars donc des fichiers organisés dans un dossier comme ils vont devoir l'être dans Program Files, soit les binaires et données de configuration d'un côté et des données utiles à l'utilisation de l'appli ailleurs, tous m'appartenant (compte utilisateur classique).

    Or maintenant quand l'appli tente de lire (reset) ces données, cela provoque une erreur "Access violation". J'ai vérifié les droits et l'utilisateur a "Lecture et autorisation" et "Lecture" autorisées. Sauf que si je veux toucher à ces fichiers, manifestement ils appartiennent à l'administrateur ! Pourtant l'extraction n'est pas faite en tant qu'admin (j'ai décoché la case permettant de le faire dans le zip suite à d'autres problèmes).

    Je ne comprends donc pas du tout ce qu'il se passe.
    Je veux bien admettre que placé dans Program Files on ne puisse pas tout faire et que les fichiers basculent chez l'admin et qu'on ne puisse alors plus les modifier (rewrite).
    Mais je ne peux pas comprendre pourquoi des fichiers avec des droits de lecture ne puissent pas être lus (reset) !?


    Comment permettre à mon application d'être installée automatiquement dans Program Files ET de lire ses propres données ? Je ne peux pas demander à l'utilisateur d'aller faire des manips de droits d'accès post installation, personne de fait ça à l'installation d'une appli.
    Et je ne peux pas déplacer ses données dans le dossier utilisateur.

    Merci.

  2. #2
    Membre confirmé

    Homme Profil pro
    Autre
    Inscrit en
    novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : novembre 2015
    Messages : 145
    Points : 625
    Points
    625
    Par défaut
    Je ne suis pas un expert dans l'UAC de Microsoft; ainsi, ce qui suit est probablement incorrect et incomplet ...


    D'abords, quelques poncifs:

    - Êtes-vous certain des droits d'accès en lecture pour le/les fichiers (à savoir l'utilisateur exécutant le programme) ?

    - Êtes-vous certain que votre auto extraction est correcte ? Avec une autorisation en lecture pour l'utilisateur courant ?


    Par ailleurs:

    - Êtes-vous certain que vous ouvrez bien votre fichier en lecture seule ? Il semble que utilisiez l'ordre "Reset", et d'après la documentation (cf. https://www.freepascal.org/docs-html...tem/reset.html) la lecture seule ne se fait par défaut que pour les fichiers texte. Sinon, il faut le spécifier avec "FileMode" (i.e. fmOpenRead, dans votre cas) avant votre Reset.


    Enfin, (bien que je ne pense pas que cela soit votre cas), si votre application (sans Lazarus apparemment ?) est de type 32 bits, sans Manifest Windows et lancée sans élévation de privilèges, il se pourrait que la virtualisation de l'UAC soit mise en œuvre automatiquement. Vous pourriez alors avoir des fichiers dans "user_profile\local\VirtualStore\Program Files (x86)\votre_programme", que votre programme "croirait" pourtant voir dans "c:\Program Files (x86)\votre_programme". Ces fichiers pourraient êtres vides et/ou incorrects, et cela pourrait poser un problème (mais tout ceci est au conditionnel).

  3. #3
    Membre régulier Avatar de danucc
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    novembre 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2008
    Messages : 67
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Ça ne pourrait par être un problème d'accents ?
    J'ai pas mal galéré avec ça sous Windows alors que ça tournait très bien sous Linux et bien sûr, sur les 2 quand il n'y avait pas d'accents.

    Danilo

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 57
    Points : 53
    Points
    53
    Par défaut
    Les droits étaient bons, c'est bien ça qui est étrange.

    J'ai contourné le problème en installant le logiciel non pas dans Program Files\ mais dans un dossier dédié à côté de de dossier, ce qui n'est pas terrible.

    Pour moi, le sujet est clos.

    Merci à vous deux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/11/2009, 19h09
  2. Ouverture d'un fichier Access
    Par magictom42 dans le forum Access
    Réponses: 12
    Dernier message: 24/07/2007, 16h39
  3. [VBA] fonction vba à l'ouverture d'un fichier access
    Par fabiolous dans le forum VBA Access
    Réponses: 3
    Dernier message: 18/05/2007, 16h27
  4. Blocage d'Access à l'ouverture d'un fichier .mdb partagé
    Par Iceman8 dans le forum Sécurité
    Réponses: 2
    Dernier message: 08/01/2007, 08h24
  5. Ouverture d'un fichier Excel en VBA par Access
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 02/11/2005, 11h14

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