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 :

Installation et droits!


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut Installation et droits!
    Bonjour, j’ai un programme en Delphi (32 Bits) dont je l’ai jusqu’a présent toujours installer sous windows xp .
    L’installation ce fait avec inno setup (PrivilegesRequired=poweruser) Sous Windows XP tous ce passe bien.
    Mais maintenant je vient de l’installer sous windows 7, au setup il me demande mots de passe (UAC) puis l’installation ce passe aussi bien.
    (C:\Program Files\MonFolder\MonProg.exe)
    Mais dans mon programme j’ai des répertoires qui ce crée au fur et à mesure expl:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [CreateDir(‘C:\Program Files\MonFolder\folder01..99)]
    et des fichier qui ce crée [fichier01..99.txt]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var F: file;
    begin
     AssignFile(F, NomFich);
     if not FileExists(NomFich) then
     begin
     
      Rewrite(F, 1);
    end;
    ...
    Sous windows 7 ses fichiers ne sont pas crée, et je n’ai pas d’erreur!

    J’ai longuement chercher et je pense qu’ il faut crée un fichier manifeste.. et le mettre dans le Monprog.pas

    - Si je crée et ajoute cette ligne {$R 'MonManifest.RES' 'MonManifest.rc' }
    est-ce que mon programme fonctionnera toujours aussi sous windows XP ou dois-je faire des conditions...mais je ne sais pas vraiment comment faire...

    - Est-ce un problème de droits d’accès...

    Merci pour des liens ou des exemples...

    Salutation

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 787
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 787
    Points : 13 442
    Points
    13 442
    Par défaut
    Depuis Vista, pour pouvoir écrire sous Program Files avec l'UAC activé, pas de miracle, il faut une élévation de privilèges !
    ça passe en effet par l'ajout d'un manifest personnalisé et la bonne nouvelle est qu'il ne gène en rien sous XP.

    Par contre la fenêtre de confirmation engendrée à chaque lancement va vite t’énerver (toi et tes utilisateurs). Tu devrais choisir un autre répertoire de données dans un emplacement non protégés. De plus, pense que l'élévation de privilèges ne te dispense pas d'être Admin sur la station !

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut
    OK, alors est-ce exacte d’ installer de préférence le programme sous
    c:\users\Ardely\Monfolder\Monprog.exe (ou quelle répertoire de préférence)

    Si je fais ainsi est-je toujours besoin d’un manifest dans mon program , si NON
    alors je pense que je dois vois dans inno setup que l’installation sois cibler
    dans le repertoir c:\users\...

    Merci pour les infos.

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut
    Avant de faire toutes mes modif. je voudrais savoir si l’idée est correct !
    J’installe mon programme dans le répertoire
    C:\Program Files\MonFolder\MonProg.exe
    et tous les autres liens je les cibles dans le répertoire c:\Users\Ardely\AppData\MonFolder\...

    Mon raisonnement est-il correct !
    Merci pour vos suggestions.

  5. #5
    Membre actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    Par défaut
    Avant de tout changer, tes chemins "c:\program file\" sont en dur dans ton programme ou bien tu vas chercher les chemins via CSIDL_PROGRAM_FILES ?

    Ensuite, si tu vas bien chercher le répertoire CSIDL_PROGRAM_FILES et que Vista te gène via l'UAC, perso je créerai tout mon prog dans un dossier propriétaire de l'appli et de ses sous répertoires, plutôt que d'en mettre partout.

    Ce n'est que mon avis

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut
    Oui, je suis aussi de ton avis, jusqu’a présent j’ai mis toujours mes fichiers dans un répertoire;mais sous windows 7 !! il faut que je change les path, je suis entrain de chercher ou les poser ... Dans quelles dossier les posez vous habituellement?

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 787
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 787
    Points : 13 442
    Points
    13 442
    Par défaut
    Citation Envoyé par Ardely Voir le message
    Avant de faire toutes mes modif. je voudrais savoir si l’idée est correct !
    J’installe mon programme dans le répertoire
    C:\Program Files\MonFolder\MonProg.exe
    et tous les autres liens je les cibles dans le répertoire c:\Users\Ardely\AppData\MonFolder\...
    C'est ça ! Tout ce qui est programmes, librairies et config dans un répertoire protégé (sous Progam Files) et les fichiers usuels (accessibles en écriture)
    dans un répertoire sans droit particulier. A voir ensuite s'ils doivent être accessibles uniquement par l'utilisateur courant (Ardely) ou tous ceux de la machine.

    A noter que tu définis des droits PowerUser dans Inno Setup. Par défaut ils sont en Admin

  8. #8
    Membre actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    Par défaut
    Citation Envoyé par Ardely Voir le message
    Oui, je suis aussi de ton avis, jusqu’a présent j’ai mis toujours mes fichiers dans un répertoire;mais sous windows 7 !! il faut que je change les path, je suis entrain de chercher ou les poser ... Dans quelles dossier les posez vous habituellement?
    Mes programmes sont en rapports avec l'argent et pour des sociétés très "attentivent" à ce que peuvent faire les end users.

    Donc généralement j'ai un Admin qui fait l'install dans l'équivalent Program files (quelque soit l'OS et donc du seven), puis il donne les droits à partir du répertoire de mon applic sur les dossiers descendants.

    Il ne m'est pas possible d'écrire ailleurs en général et par souci de propreté je mets tout dans ces descendances, je crée même mon répertoire temporaire si nécessaire.

    Je n'écris jamais rien dans les répertoires des users qui chez plusieurs de mes clients sont nettoyés automatiquement par des automates pour éviter que les utilisateurs stockent des progs !!!

    Mais bon, je suis peut être dans des cas particuliers qui ne sont pas les tiens. Maintenant, c'est devenu une habitude de tout centraliser et au final je m'y retrouve car pas de disperssion. D'autant plus que je fais la maintenance à distance ça m'évite de naviguer à droite à gauche dans l'explorateur.
    Mon point de départ est mon répertoire d'install et je sais où tout va.

    Mes configs end user son en base de données et non sur disque ce qui me simplifie aussi les params. Ils doivent pouvoir changer de machine et retrouver leur environement de travail. Pour certain, ils sont connectés aux 4 coins de la France et retrouvent à Marseille, Bordeaux, Lille ou Paris leur applic dans le même état.

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 787
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 787
    Points : 13 442
    Points
    13 442
    Par défaut
    Citation Envoyé par castorcharly Voir le message
    Donc généralement j'ai un Admin qui fait l'install dans l'équivalent Program files (quelque soit l'OS et donc du seven), puis il donne les droits à partir du répertoire de mon applic sur les dossiers descendants.
    Un peu surpris que ça fonctionne ou alors l'UAC est désactivé !

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut
    Bonjours,
    Merci pour vos suggestions et maintenant je commence a comprendre cette philosophie..
    J’ai encore un problème c’est a dire si je installer le programme avec inno Setup dans le répertoire:

    C:\Program Files\MonFolder\MonProg.exe

    je reçois bien UAC et tous ce passe bien, mais j’ai besoin quand même que une seule fois, au premier démarrage du programme MonProg.exe
    il écrit un fichier INI avec des paramètres puis il écrit plus jamais rien dedans !
    Voila le fichier n'est pas écrit dans ce répertoire mais dans une autre répertoire:

    c:\users\Ardely\...\VirtualStore\monFichier.INI

    Donc comment forcer UAC seulement une seul fois si l’éxistance du fichier dans C:\Program Files\MonFolder\monFicher.INI n’existe pas. pour que je le puisse l’écrire dans ce même répertoire?

    Merci beaucoup pour vos aides.

  11. #11
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 787
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 787
    Points : 13 442
    Points
    13 442
    Par défaut
    Le mieux serait de confier aussi l'écriture du ini à Inno Setup.

  12. #12
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut
    Bonjour
    J’aurais une petit question je viens d’installer mon programme sous windows 7
    et j’ai un fichier ASCI qui est installé dans le répertoire
    'Program files (x86)\MonProg\Data.DAT’ le fichier Data.DAT n’est uniquement a lire je n’écris jamais dedans.
    Mon Program.exe ne fait que ouvrir le fichier Data.DAT avec BlockRead, mais il ne me donne pas l’information, aucune erreur que dois-je faire... dois-je change de fonction (BlockRead) ou la modifier ou dois-je changer le fichier de répertoire. (avec run as j’arrive a le lire)
    Merci pour les infos.

  13. #13
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 787
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 787
    Points : 13 442
    Points
    13 442
    Par défaut
    Ajoute FileMode avant Reset:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileMode := fmOpenRead;
    Reset(f);

  14. #14
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut
    Merci beaucoup pour ta réponse rapide l'ajoute de FileMode à résolu un bout de mon probléme, bonne soirée.

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

Discussions similaires

  1. Installation package droit accès
    Par fleto dans le forum R
    Réponses: 4
    Dernier message: 07/07/2010, 17h48
  2. Installation Service=> Droits Users
    Par Archeone dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/12/2008, 16h55
  3. Installation package droit accès
    Par fafabzh6 dans le forum R
    Réponses: 10
    Dernier message: 21/07/2008, 09h21
  4. Programme d'installation modification droits
    Par butch dans le forum Windows
    Réponses: 1
    Dernier message: 29/02/2008, 20h49
  5. Réponses: 5
    Dernier message: 10/08/2006, 01h46

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