2009-08-04 6 views
3

J'ai une application propriétaire avec le seul moyen de transmettre des données en externe - faire glisser et déposer à partir d'une autre application (comme faire glisser un fichier depuis l'explorateur Windows). Ma question est, est-il possible de simuler drag'n'drop d'application externe? La solution pure win32 préférée, les dépendances comme MFC et WTL pourraient également être incluses. Aide!Simulation par glisser-déposer?

+0

aloneguid: avez-vous trouvé la réponse? J ai exactement le même problème. Si vous trouvez quelque chose s'il vous plaît laissez-moi savoir ([email protected]) – AliPST

+0

Non, je ne l'ai toujours pas :( –

+0

aloneguid: Avez-vous trouvé une réponse encore? – test

Répondre

0

Je pense que c'est possible, mais vous aurez probablement besoin de COM pour cela (je ne suis pas sûr cependant - il y a un message WM_DROPFILES, et certaines fonctions connexes, mais je ne pouvais pas trouver un pour déposer des données). Voir this article sur MSDN.

+2

WM_DROPFILES (qui est un message obsolète destiné à la rétrocompatibilité) peut être envoyé d'une application à l'autre en utilisant SendMessage(), mais cela ne fonctionne que pour envoyer des noms de fichiers, rien d'autre.Pour glisser/déposer des données réelles, vous devez utiliser les interfaces IDropTarget et IDataObject à la place. Cependant, une application externe doit appeler DoDragDrop() avec des interfaces IDropSource et IDataObject valides, puis le glisser-déposer est à compléter par l'utilisateur L'interface IDropTarget d'une fenêtre n'est pas accessible directement –

+0

Une application peut mettre Une interface IDataObject sur le presse-papiers utilisant OleSetClipboard(), cependant, l'application Anotehr peut alors la récupérer en utilisant OleGetClipboard(). –

+0

@Remy, unfortuna Il semblerait qu'ils n'ont pas accès à la source de l'application "propriétaire". – NotMe

Questions connexes