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

API, COM et SDKs Delphi Discussion :

Programme Delphi 7 et Vista


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 156
    Par défaut Programme Delphi 7 et Vista
    Bonjour,

    J'ai écrit un programme en Delphi 7. Ce programme est installé grâce à Installshield express version 3.5. Un raccourci est créé sur le bureau par installshield.

    Or avec VISTA (et uniquement vista), le programme ne se lance pas lorsqu'on double-clique sur l'icône du bureau, car il faut l'exécuter en tant qu'administrateur pour que ça marche. Le programme est bien lancé la première fois à la fin de l'installation, mais c'est tout !

    Je cherche une solution à ce problème :

    - soit créer le raccourci sur le bureau directement avec installshield, et l'option cochée "exécuter en tant qu'administrateur". Je ne sais pas faire avec ma version d'installshield, car je ne trouve pas comment le faire.

    - soit créer le raccourci sur le bureau par le programme Delphi, au premier lancement. Mais je ne sais pas faire non plus. La FAQ Delphi indique bien comment créer un raccourci, mais ne parle pas de l'option "exécuter en tant qu'administrateur"

    - soit je demande à l'utilisateur, lors du premier lancement, de compléter le raccourci en allant cocher la case dans le panneau propriétés, onglet compatibilité. Cette solution, je l'envisagerais bien si je savais que le programme fonctionne sous vista. Mais nouveau problème : je ne sais pas comment déterminer que je suis sous vista. La FAQ Delphi donne une procédure pour déterminer la version de windows, mais elle ne parle pas de vista !

    - soit j'utilise une autre solution si quelqu'un a des suggestions.....

    Merci d'avance de votre aide. J'espère avoir été clair dans mes explications.

  2. #2
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Il me semble (je dis bien il me semble) que si l'installation est executée en tant qu'admin, l'executable n'aura plus besoin de l'etre ...


    Ensuite, pour connaitre la version de Windows, c'est normal que la FAQ ne parle pas de Vista, parce qu'elle n'existait pas a l'époque de la FAQ ... J'imagine que tu as vu ce lien : http://delphi.developpez.com/faq/?pa...versionwindows

    Je sais pas si t'as vu, mais ils disent a un endroit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            if osvi.wProductType = VER_NT_WORKSTATION then
            begin
              if (osvi.dwMajorVersion = 5) and (osvi.dwMinorVersion = 1) then
              AddString(result, 'Microsoft Windows XP');
    Donc je pense que tu devrais tenter, sur une machine avec Vista, ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage('MajorVersion : '+IntToStr(osvi.dwMajorVersion)+', MinorVersion : '+IntToStr(osvi.dwMinorVersion));
    Et tu devrais récuperer les valeurs de version qu'il te faut ! Ensuite, tu contacte le responsable FAQ pour completer cette rubrique !

    Mais je pense que le mieux, c'est que si le premier point que j'ai cité fonctionne, tu devrais, lors de l'installation, dire a l'utilisateur, que si il a Vista, d'installer et tant qu'admin ...

    Bonne chance !

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 156
    Par défaut
    Et non, l'installation ayant eu lieu en tant qu'administrateur (sur mon poste), j'ai tout de même le problème que le programme ne s'ouvre pas la fois suivante.

    Pour ce qui est de connaître la version de windows, c'est bien ce que j'ai trouvé. J'en avais une version plus simple, que j'avais arrangée à ma manière : pour les versions non recensées, au lieu d'afficher les majorversion et minorversion, ça m'affiche "version inconnue" !

    En fait je peux me contenter de considérer que si ce n'est ni NT, ni W95 , ni W98, ni W2000, ni XP, ni ME, il y a de fortes chances pour que ce soit vista !

    Je préfèrerais tout de même une solution plus automatique....

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 926
    Par défaut
    C'est dû au manque de privilège et non à l'utilisateur. Le lancer en tant qu'administrateur ne changera rien. Et pour essai, ton programme tourne certainement très bien sans l'UAC.

    Lors de l'installation avec InstallShield, tu as certainement eu un message à confirmer avant que l'installation ne démarre. Et en fin d'installation, c'est InstallShield lui-même qui exécute ton programme. Ton programme est donc lancé avec les mêmes privilèges qu'InstallShield (hérités), ce qui n'est plus le cas en double-cliquant sur l'icône du bureau.

    Tu as toutes les infos ici.

    A noter que pour une utilisation régulière, tu devrais penser à stocker tes données (fichiers ou registre) ailleurs que dans les zones protégées.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 156
    Par défaut
    Oui je confirme, sans l'UAC, ça fonctionne bien !

    Actuellement, mon programme est installé dans le répertoire :

    c:\program files\ma societe\mon programme

    et les données sont dans :

    c:\program files\ma societe\mon programme\donnees

    Si je faisais une installation dans les répertoires

    c:\ma societe\mon programme
    et
    c:\ma societe\mon programme\donnees

    je n'aurais plus la demande de confirmation par l'UAC ?

    A quoi sert exactement le fichier manifest ?

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 926
    Par défaut
    Exactement. Tu serais en dehors des zones protégées. (Disque tout du moins, mais attention à la base des registres)

    Le manifest sert justement à définir le niveau de privilèges requis par ton application et qui en fonction du niveau choisi fera apparaître le message de confirmation que l'utilisateur devra quittancer manuellement.

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

Discussions similaires

  1. programme Delphi permettant la création de base de donnée
    Par lassad dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/10/2005, 14h06
  2. Programme Delphi et Zone Alarm Suite
    Par vanquish dans le forum EDI
    Réponses: 1
    Dernier message: 11/10/2005, 17h26
  3. Dll en c++ dans un programme delphi
    Par wikers dans le forum Langage
    Réponses: 2
    Dernier message: 04/08/2005, 15h39
  4. Comment intégrer un programme Delphi dans CBuilder
    Par Xavier dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/07/2005, 20h23
  5. Réponses: 3
    Dernier message: 29/06/2005, 13h56

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