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

Delphi Discussion :

comportement tshelltreeview selon exécution dans delphi ou depuis l'exe


Sujet :

Delphi

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 400
    Par défaut comportement tshelltreeview selon exécution dans delphi ou depuis l'exe
    Bonjour,

    Le titre n'est peut-être pas très explicite, donc je m'explique.
    J'utilise Tshelltreeview de façon classique en le créant à l'exécution puisqu'il n'y plus de composant TshellTreeView.
    Cela fait plusieurs heures que je m'arrache les cheveux pour comprendre pourquoi mes lecteurs réseaux n'apparaissent pas dans le TShellTreeView.

    Lorsque j'exécute le programme dans l'EDI pour débuggage, les lecteurs réseaux n'apparaissent pas.

    Et je viens de découvrir que lorsque j'exécute le programme normalement à partir de l'explorateur, .... les lecteurs réseaux apparaissent bien et je peux y accéder sans problème.

    Est ce que quelqu'un aurait une explication à ce phénomène étrange ? Et si oui que faut-il faire pour y remédier ?
    Une option cachée ?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 400
    Par défaut
    Alors après une fulgurance et moults tests, je me suis demandé pourquoi lorsque j'exécutais le programme depuis l'explorateur les lecteurs réseaux apparaissaient et j'ai constaté en regardant les propriétés du programme que celui-ci n'était pas exécuté en mode administrateur.
    Pour être sûr, je l'ai exécuté en mode administrateur et les lecteurs réseaux n'apparaissent pas.
    Pour ne pas être embêté parfois avec des histoires de droits, j'exécute delphi en mode administrateur.
    Je l'ai remis en mode normal et là, en exécutant le programme depuis l'edi, les lecteurs réseaux apparaissent !

    C'est un comble : le mode administrateur interdit l'apparition des lecteurs réseaux dans le TShellTreeview !

    Si quelqu'un avait l'explication je suis preneur car c'est fort de café quand même !

    A votre bon coeur ...

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    je suppose tout simplement que les lecteurs réseaux (c'est à dire l'attribution d'une ressource réseau à une lettre) est propre à chaque utilisateur...par contre ces mêmes ressources sont sans doute visibles dans le voisinage réseau (aux droits près)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    C'est lié à l'UAC, comme d'hab !

    Même si tu appartiens au groupe administrateurs, tu n'es qu'utilisateur standard par défaut et les lecteurs réseaux sont associés au jeton de cet utilisateur-là. Lorsqu'il y a élévation de privilèges, ce jeton est remplacé par celui de l'administrateur "plein pouvoirs", les mappings n'y sont pas répertoriés. Tu peux facilement contrôler cela par l'invité de commandes en mode admin, les dossiers mappés ne sont pas accessibles.

    On rencontre le même problème lorsqu'on veut copier un fichier depuis un lecteur réseau vers un emplacement protégé tel que Program Files (dès que l'élévation est requise).

    Tu as dès lors quatre possibilités :
    • désactiver l'UAC (!) ;
    • procéder comme le propose Paul en ne référençant que des chemins UNC (\\serveur\partage) ;
    • créer un batch, lancé en mode administrateur, qui recrée les mappings avant de lancer Delphi ;
    • autoriser définitivement le partage des mappings entre le jeton standard et celui élevé.


    La quatrième possibilité passe par une modification de la base des registres ; ajouter EnableLinkedConnections = 1 (REG_DWORD) sous HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System et redémarrer la station.

    Et comme toujours, un peu de lecture

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 400
    Par défaut
    Merci à vous deux.

    Pour le lien de la page crosoft (en anglais qui n'est pas mon fort), j'avais déjà trouvé le truc et je l'avais appliqué, mais sans changement notable.

    Enfin je croyais l'avoir appliqué ...

    Quand Andnotor donne un truc, je vérifie et .... à 3h du matin, j'avais fait une erreur de frappe dans le nom de la clé !

    J'avais créé une nouvelle clé sous le nom de EnabledLinkedConnections

    Une toute petite erreur qui faisait que la clé n'était pas interprétée.

    J'ai supprimé la clé et je l'ai recréée correctement, et ça marche !

    Merci encore, ça m'a obligé à me vérifier ...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/02/2012, 00h05
  2. Problème d'écriture dans un xml depuis Delphi
    Par MABB dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 26/07/2006, 15h53
  3. Réponses: 4
    Dernier message: 01/06/2006, 15h55
  4. Exécuter code dans base A depuis base B
    Par Kloun dans le forum Access
    Réponses: 3
    Dernier message: 26/01/2006, 09h51
  5. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11

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