C# Glisser-déposer ne fonctionne pas sur windows 7
J'ai eu un projet pour un bon moment à l'aide de C#, winforms. J'ai mis en place un glisser-déposer, avant que windows 7 a été publié. A travaillé comme un charme. Cependant, lors de l'utilisation de windows 7, il ne fonctionne pas. L'événement n'est pas déclenché.
AllowDrop
est définie sur true. Lors de l'abonnement à DragEnter
il n'est pas appelé dans windows 7 (pas sûr à propos de vista). Mais sur XP, il fonctionne tout le chemin. Le programme est exécuté avec administritave ses privilèges.
Est là toute la différence dans la glisser-déposer dans windows 7 vs xp? Ne sais pas si c'est pertinent, mais je suis en utilisant x64
- J'ai eu un peu le même problème avec un nouveau projet Silverlight. Le glisser-déposer ne fonctionne pas, parce que des fonctionnalités de sécurité de mon navigateur. Êtes-vous à l'aide d'un contrôle de navigateur dans votre winforms?
- J'ai remarqué que lors de l'exécution d'applications avec des Autorisations Élevées dans Windows 7, le drag & drop a été désactivé.
Vous devez vous connecter pour publier un commentaire.
La source et cible doivent être compatibles niveaux de sécurité\ privilèges. Par exemple, si votre source est Explorer et il est en cours d'exécution par l'utilisateur avec les privilèges de niveau, mais l'application cible est en cours d'exécution avec l'administrateur (l'élévation du niveau de la permission, vous ne serez pas en mesure de drag&drop comme cela est considéré comme un problème de sécurité de la cible est en cours d'exécution avec un plus haut niveau de privilèges.
Il est appelé UIPI, Interface Utilisateur Privilège d'Isolement. Conçu pour empêcher la saisie d'injection exploits de programmes de s'exécuter avec des privilèges restreints. Il peut être désactivé, vous aurez besoin de faire cela:
<requestedExecutionLevel>
élément de vrai.Jamais essayé ce, ymmv.
À partir de votre demande, appelez ChangeWindowMessageFilter avec les valeurs suivantes pour permettre de glisser-déposer de votre élévation de l'application et non élevés des applications comme l'Explorateur:
Un Mineur de plus de dmex post.
Celui-ci définit les variables et les constantes.
Aussi, vous pouvez envisager d'utiliser
ChangeWindowMessageFilterEx
si vous êtes à la demande est sur Windows 7. Je crois aussi que OLE glisser-déplacer ne pouvez pas utiliser de messagerie de Windows. Donc il ne serait pas d'effet du tout.Il peut être sans rapport, mais j'ai eu des déjanté Drag-n-Drop des problèmes avec Windows 8. Cela fonctionne pour un certain temps et puis arrêter de travailler. Je ne pouvais pas le drag-n-drop entre Explorer, dans un éditeur de texte, etc. Il s'avère que lorsque j'ai interagi avec un ordinateur virtuel Hyper-V sous windows 7, mon drag-n-drop capacité a été modifié (ou c'était peut-être la combinaison de touches ctrl-alt-end de frappe pour simuler les touches crtl-alt-suppr pour Hyper-V). Dans tous les cas, un problème s'est produit, les éléments suivants résolu:
J'ai trouvé la résolution de mon problème ici:
Correction du Glisser-Déposer ne fonctionne Pas Dans Windows 7, Vista, XP
Fondamentalement, la solution était:
Gauche-Cliquez sur un fichier dans l'explorateur, et tout en maintenant le bouton de la souris, appuyez sur la touche [Esc], puis [Ctrl] enfoncée, puis relâchez le bouton de la souris. Je suppose que c'est la réinitialisation de certains accessibilité de paramètre ou de quelque chose.
J'ai eu le même problème lors du débogage d'un bureau application C# VS 2015 et Windows 7 x64 S. O.
C'était dû à la d'une autorisation d'administrateur appliqué sur le raccourci de mon VS IDE dans le bureau (voir capture d'écran). En décochant cette option Drag & Drop événements élever correctement.
Grâce à TimLloyd pour son aide.