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

WinDev Discussion :

DnD Bugs lié aux Privilèges Administrateur. [WD25]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Points : 13
    Points
    13
    Par défaut DnD Bugs lié aux Privilèges Administrateur.
    Bonjour, je voulais savoir si le problème déjà exposé dans la discussion :

    [WD23] DnD Exploreur - évènement ne se déclenche pas - WinDev (developpez.net)

    A été réglé ou pas, il s’agit selon ce que je vois d’un bug dans le fonctionnement du Drag & Drop lié aux privilèges élevé d’une application (ce qui est étonnant vu que généralement les bugs surviennent lorsque les privilèges sont faibles)
    Mon code est simple il s’agit d’activer le DnD pour la fenêtre, et lier la procédure locale qui déterminera l’action à faire en cas de DnD (dans mon cas récupérer le chemin du fichier glissé)
    Code :
    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
    19
    20
    21
    22
     
    PROCÉDURE MaFenêtre()
    CONSTANTE
    	WM_DROPFILES=563
    FIN
     
    ExplorerAccepte(Vrai,FEN_Menu) //Activation du Drag & Drop pour la fenetre en entier avec tout les champs
    Evénement("RecupFichiers_DND_Windows","*.*",WM_DROPFILES) // Liaison de la procedure RecupFichiers_DND_Windows avec le DnD
     
    PROCÉDURE RecupFichiers_DND_Windows()
     
     
    // Nombre de fichiers posés dans l'application par Drag and Drop
    nbFic est un entier = ExplorerRécupère(_EVE.wParam)
    sNomFic est une chaine
     
    SI nbFic = 1 ALORS
    	sNomFic		= ExplorerRécupère(_EVE.wParam,1)
    	SAI_Chemin  = sNomFic
     
     
    FIN
    Constats :
    Le code fonctionne bien et le résultat attendu est là, Mais…
    si l’exécutable est démarré avec privilèges administrateur la fonction DnD est comme désactivée, il ne se passe plus rien.
    Et dans mon projet c’est obligatoire d’avoir des privilèges élevés vu qu’il s’agit de régler des erreurs et qu’il devra avoir accès au registre Windows etc.
    J’ai donc voulu voir si cette erreur est reproductible dans le projet Exemple livré avec WinDev :
    Exemples complets (WINDEV) : WD Zip
    Cet exemple illustre l'utilisation des fonctions WLangage d'archivage avec compression.

    Et donc là aussi lorsqu’on exécute le programme en tant qu’administrateur le DnD ne marche pas.
    Ma solution temporaire :
    Détacher cette fenêtre de mon projet et produire un exécutable sans privilèges administrateur pour qu’il fasse le job et renvoi le résultat dans un fichier externe que mon programme initial devra utiliser pour récupérer le résultat !!
    Ma solution je ne l’aime pas trop est me parait du bricolage malheureusement, car l’application qui devra faire le DnD doit être démarrée manuellement sans l’appel depuis l’application qui a déjà des privilèges élevés sinon elle aussi est automatiquement démarrée avec des privilèges élevés et ça plante tout le fonctionnement DnD.
    Donc voilà, si quelqu’un peut m’orienter vers la méthode pour contourner ce bug ça sera super.

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 810
    Points : 5 270
    Points
    5 270
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    C'est un comportement normal du DnD depuis l'explorateur. Je cite la doc de ExplorerAccepte :
    Remarques
    Drag and drop
    .....
    Windows Vista (et supérieur)

    Sous Windows Vista (et supérieur) avec le mécanisme de l'UAC (contrôle des comptes utilisateurs) activé, le "Drag & Drop" n'est pas toléré par le système dans les cas suivants :
    • Si l'exécutable est lancé depuis Windows avec l'option "Exécuter en tant qu'Administrateur",
    • Si l'exécutable est créé avec un manifeste lui donnant les privilèges administrateur.
    Par ailleurs en ce qui concerne la BDR, je te conseille de lire la doc concernant l'UAC et en particulier la chapitre concernant la redirection.
    Pour résumer : Cela ne concerne que l'écriture dans la clé HKEY_LOCAL_MACHINE\SOFTWARE ou un répertoire système. Si les droit ne sont pas suffisant, cette écriture est redirigée.

    Il est possible de forcer l'écriture dans la BDR via un .BAT qui inclut un runas (pour passer en mode admin) ainsi que les commandes REG XXXX (pour manipuler la BDR.)

    Ce .BAT sera lancé via LanceAppli
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    C'est un comportement normal du DnD depuis l'explorateur. Je cite la doc de ExplorerAccepte :


    Par ailleurs en ce qui concerne la BDR, je te conseille de lire la doc concernant l'UAC et en particulier la chapitre concernant la redirection.
    Pour résumer : Cela ne concerne que l'écriture dans la clé HKEY_LOCAL_MACHINE\SOFTWARE ou un répertoire système. Si les droit ne sont pas suffisant, cette écriture est redirigée.

    Il est possible de forcer l'écriture dans la BDR via un .BAT qui inclut un runas (pour passer en mode admin) ainsi que les commandes REG XXXX (pour manipuler la BDR.)

    Ce .BAT sera lancé via LanceAppli
    aah d'accord, merci beaucoup pour cette explication l'ami.

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

Discussions similaires

  1. Bug dû aux booléens
    Par tofito dans le forum Débuter
    Réponses: 3
    Dernier message: 30/08/2009, 13h06
  2. comment éviter les bugs dus aux majsucules et accents
    Par tomo0013 dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2008, 11h41
  3. Privilèges administrateur vers utilisateur
    Par philec dans le forum Windows XP
    Réponses: 10
    Dernier message: 08/04/2008, 21h15
  4. privilège administrateur Ubuntu 7.04
    Par sondo dans le forum Ubuntu
    Réponses: 2
    Dernier message: 06/09/2007, 19h51

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