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 :

Modifier un fichier ayant des droits d'administrateur depuis une appli Pascal [Free Pascal]


Sujet :

Free Pascal

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

    Informations forums :
    Inscription : Décembre 2012
    Messages : 71
    Points : 60
    Points
    60
    Par défaut Modifier un fichier ayant des droits d'administrateur depuis une appli Pascal
    Bonjour.

    Je me trouve face à un problème en réalisant un installateur de programme sous Windows.

    Je dois faire en sorte d'installer automatiquement un programme puis de configurer quelques paramètres lors de l'installation.

    Naturellement je veux installer le programme dans Program Files. J'utilise winRar pour créer l'archive qui peut ainsi s'extraire à cet endroit (en indiquant ce dossier) puis lancer l'installateur avec les droits d'administrateur.

    Jusque-là tout semble fonctionner à merveille, je suis même capable d'accéder aux clés de registre qui nécessite un droit d'administrateur !

    Et la, patatras ! Dès que je veux faire le truc le plus basique d'une installation modifier le fichier de configuration, Windows ne me donne plus aucun accès en écriture au fichier copié dans Progam Files alors que quelques lignes plus haut j'avais les droits d'administrateur ! Le fichier d'origine (dans l'archive) n'appartient pas à l'administrateur et a des droits d'écriture, c'est l'extraction dans ce dossier qui change la donne et pourtant avec l'exécution en tant qu'admin je devrais pouvoir outre-passer ce problème.

    Ah oui petit détail qui a son importance, j'utilise une TStringList pour lire (depuis une config par défaut) puis écrire la configuration ; le problème vient peut-être de là ?

    Je pourrai modifier l'appli pour qu'elle gère la config dans le registre sauf que ce n'était pas prévu ainsi (l'installateur et l'accès au registre vient d'être ajouté pour de simples raisons de période d'essai) et que je ne veux pas passer de temps à réécrire cette partie.

    Donc quelle solution est envisageable pour débloquer cette situation ?
    - un moyen d'avoir un accès à ce fichier avec mes droits d'admin,
    - le déposer ailleurs, mais où qui ne soit pas dans le dossier de l'utilisateur ?
    - passer par le registre (en dernier recours).


    Je me penche sur ce point qui m'est venu à l'esprit en écrivant, la TStringList ne pourra-t-elle pas sauver en mode admin ? Je ne trouve pas de doc qui relie les deux.

    Merci.

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

    Informations forums :
    Inscription : Décembre 2012
    Messages : 71
    Points : 60
    Points
    60
    Par défaut Derrière un bug il y a deux erreurs de programmateur...
    Bon, apparemment j'avais fait deux erreurs.

    D'abord en testant j'ai du oublié de le faire comme admin (hors Lazarus donc). On va mettre ça sur la grosse fatigue hier au moment où j'ai testé.

    Et une autre erreur à l'instant, liée à l'utilisation d'un fichier texte pour l'écriture, mal fermé.

    Mea maxima culpa.


    Bref*: TStringList permet parfaitement d'enregistrer un fichier en mode admin dans un dossier protégé que ce soit à la création ou pour le modifier, ce qui était le comportement attendu.

    Sur ce, je vais aller me coucher...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/03/2012, 13h07
  2. Réponses: 6
    Dernier message: 16/11/2010, 23h51
  3. Besoin des droit d'administrateur pour executer?
    Par icekev dans le forum VB.NET
    Réponses: 0
    Dernier message: 19/05/2010, 02h47
  4. Réponses: 5
    Dernier message: 07/10/2007, 17h14
  5. Réponses: 1
    Dernier message: 16/10/2006, 18h07

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