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 :

Problème Delphi 2007 et Vista: Accès à une clé de registre


Sujet :

Langage Delphi

  1. #1
    T-B
    T-B est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 69
    Points : 58
    Points
    58
    Par défaut Problème Delphi 2007 et Vista: Accès à une clé de registre
    Bonjour j'ai un petit souci avec la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    FUNCTION Rech_OOo2x : STRING ;
    CONST CLEREG = 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\soffice.exe';
    BEGIN
      Result := '';
      With TRegistry.Create DO
      TRY
         RootKey := HKEY_LOCAL_MACHINE;
         IF KeyExists(CLEREG) THEN
            IF openkey(CLEREG,FALSE) THEN
               IF(ValueExists('Path')) THEN
                   Result := ReadString('path');
     
         CloseKey;
      FINALLY
         Free;
        END;
    END;
    Cette fonction marche bien sous Vista si le code a été compilé avec delphi 7, mais ne fonctionne pas lorsque je la compile avec delphi 2007.

    La clé existe, et OpenKey retroune false et je ne sais pas pourquoi.

    Vista en en mode Administrateur

    Avez vous un idée ?


    Merci

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Essaye comme ceci, pour restreindre les droits en lecture seule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      with TRegistry.Create(KEY_EXECUTE) do
      // ...
    @+ Claudius

  3. #3
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF(ValueExists('Path')) THEN
                  Result := ReadString('path');
    Je ne pratique pas encore Vista et j'espère me tromper mais n'aurais tu pas un problème de casse avec le "P" de path une fois en majuscule puis en minuscule ???

    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  4. #4
    T-B
    T-B est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 69
    Points : 58
    Points
    58
    Par défaut
    Merci Cl@udius je test ça mercredi

    j'ai vu dans l'aide la propiétée access := .......

    ne faudrait il pas mettre en full access KEY_ALL_ACCESS ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    FUNCTION Rech_OOo2x : STRING ;
    CONST CLEREG = 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\soffice.exe';
    BEGIN
      Result := '';
      With TRegistry.Create(KEY_ALL_ACCESS)  DO
      TRY
         RootKey := HKEY_LOCAL_MACHINE;
         IF KeyExists(CLEREG) THEN
            IF openkey(CLEREG,FALSE) THEN
               IF(ValueExists('Path')) THEN
                   Result := ReadString('path');
     
         CloseKey;
      FINALLY
         Free;
        END;
    END;
    et pourqoui avec delphi 7 ça marche ?

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,
    Citation Envoyé par T-B Voir le message
    ne faudrait il pas mettre en full access KEY_ALL_ACCESS ?
    KEY_ALL_ACCESS est le mode d'accès par défaut lorsqu'il n'est pas précisé avec le Create. Et c'est le problème de ce type d'accès sur HKLM, surtout sous Vista.
    Et comme tu ne fais que de la lecture...

    Citation Envoyé par T-B Voir le message
    et pourqoui avec delphi 7 ça marche ?
    N'ayant pas de machine sous Vista, je ne peux t'en dire vraiment plus.

    [edit]
    @Yurk, à ma connaissance le nom des clés n'est pas sensible à la casse. Et il serait étonnant qu'il le devienne avec Vista.

    @+

Discussions similaires

  1. [Toutes versions] Accès à une base de registre distante
    Par Redg9 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2015, 15h40
  2. Problème Delphi 2007 avec Windows 8
    Par colorid dans le forum Langage
    Réponses: 0
    Dernier message: 24/02/2013, 17h10
  3. Réponses: 1
    Dernier message: 22/03/2012, 03h34
  4. Problème d'accès Access 2007 avec Vista
    Par jamesleouf dans le forum Access
    Réponses: 3
    Dernier message: 05/11/2008, 03h17
  5. [Delphi 2007] Droit d'accès au répertoire de l'application
    Par sovitec dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 30/01/2008, 15h42

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