Je cherche un moyen de recuperer le chemin des fichiers qui ont été
copier dans windows.
C'est plus compliqué que le presse papier qui ne contient que du texte ou
des images, et qui etait facilement accessible via des api.
Pour le prinicpe de fonctionnement du copier/coller des fichiers sous
windows :
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_prog
ramming/transferring/datascenarios.asp
Le probleme c'est que ce n'est pas accessible via des api mais apparement
par OLE.
Première chose que je voudrais faire :
Copying File Names from the Clipboard to an Application
--------------------------------------------------------
1 - Call OleGetClipboard to retrieve the data object's IDataObject
interface.
2 - Call IDataObject::EnumFormatEtc to request an enumerator object.
3 - Use the enumerator object's IEnumFORMATETC interface to enumerate the
formats contained by the data object.
Le probleme vient du fait que je ne sais pas comment acceder au
differente fonctions, j'ai tenté avec un "shell.explorer"
Premier test :
CopyPaste est un objet automation dynamique
CopyPaste = ObjetActif("Shell.Explorer")
SI CopyPaste=Null ALORS
Trace("Pas bon")
CopyPaste = allouer un objet automation "Shell.Explorer"
SI CopyPaste=Null ALORS
Trace("Pas bon")
CopyPaste = allouer un objet automation "Shell.Explorer"
SINON
Trace("Ok")
FIN
SINON
Trace("Ok")
FIN
CopyPaste>>OleGetClipboard
Mais pas de bol ca ne marche pas, j'ai bien le message OK, mais le
OleGetClipboard fait planté l'application, c'est des plans comme ca qui
me font regretter de travailler sur windev.
Y aurais'il des fortiches qui savent comment faire pour accéder a tout
ça ?, ou trouver une autre solution pour gérer le copier-coller fichier
Windows/windev
Je post une fois de plus, mais je me demande si c la dernière fois que je
vais poster un problème complexe, vu que la plupart de mes problemes
n'obtienne aucune reponse.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
KPITN
Pour ne pas changer aucune reponse mais j'ai trouver la solution :
En VB tout est la : http://www.developerfusion.com/show/224/
adpatation assez simple sous windev :
j'ai test avec du drag & drop pour l'instant :
PROCEDURE SurLâcher() NbFIchierARecup est un entier Filename est une chaîne SI DnDDonnéeDisponible(CF_HDROP) ALORS // TxtDrop = DnDRécupère(CF_HDROP)
ChargeDLL("SHELL32.DLL")
//recuperer le nombre de fichier NbFIchierARecup=AppelDLL32("SHELL32","DragQueryFile",DnDRécupère (CF_HDROP),-1,"",0) Filename=Complète(Filename,260) pour i=0 a NbFIchierARecup-1 AppelDLL32("SHELL32","DragQueryFile",DnDRécupère (CF_HDROP),0,Filename,Taille(Filename)) Filename=SansEspace(Filename) Trace(Filename) FIN FIN
Pour ne pas changer aucune reponse mais j'ai trouver la solution :
En VB tout est la : http://www.developerfusion.com/show/224/
adpatation assez simple sous windev :
j'ai test avec du drag & drop pour l'instant :
PROCEDURE SurLâcher()
NbFIchierARecup est un entier
Filename est une chaîne
SI DnDDonnéeDisponible(CF_HDROP) ALORS
// TxtDrop = DnDRécupère(CF_HDROP)
ChargeDLL("SHELL32.DLL")
//recuperer le nombre de fichier
NbFIchierARecup=AppelDLL32("SHELL32","DragQueryFile",DnDRécupère
(CF_HDROP),-1,"",0)
Filename=Complète(Filename,260)
pour i=0 a NbFIchierARecup-1
AppelDLL32("SHELL32","DragQueryFile",DnDRécupère
(CF_HDROP),0,Filename,Taille(Filename))
Filename=SansEspace(Filename)
Trace(Filename)
FIN
FIN
Pour ne pas changer aucune reponse mais j'ai trouver la solution :
En VB tout est la : http://www.developerfusion.com/show/224/
adpatation assez simple sous windev :
j'ai test avec du drag & drop pour l'instant :
PROCEDURE SurLâcher() NbFIchierARecup est un entier Filename est une chaîne SI DnDDonnéeDisponible(CF_HDROP) ALORS // TxtDrop = DnDRécupère(CF_HDROP)
ChargeDLL("SHELL32.DLL")
//recuperer le nombre de fichier NbFIchierARecup=AppelDLL32("SHELL32","DragQueryFile",DnDRécupère (CF_HDROP),-1,"",0) Filename=Complète(Filename,260) pour i=0 a NbFIchierARecup-1 AppelDLL32("SHELL32","DragQueryFile",DnDRécupère (CF_HDROP),0,Filename,Taille(Filename)) Filename=SansEspace(Filename) Trace(Filename) FIN FIN
Romain PETIT
Le 20/04/2004, KPITN a supposé :
Pour ne pas changer aucune reponse mais j'ai trouver la solution :
Personne n'est tenu ici de donner de réponse... Merci quand même d'avoir publié la solution, ça pourra peut être servir à quelqu'un un jour ou l'autre...
A+
-- Romain PETIT http://cerbermail.com/?IJmancZl88 (cliquez sur le lien ci-dessus pour me contacter en privé)
Le 20/04/2004, KPITN a supposé :
Pour ne pas changer aucune reponse mais j'ai trouver la solution :
Personne n'est tenu ici de donner de réponse...
Merci quand même d'avoir publié la solution, ça pourra peut être servir
à quelqu'un un jour ou l'autre...
A+
--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Pour ne pas changer aucune reponse mais j'ai trouver la solution :
Personne n'est tenu ici de donner de réponse... Merci quand même d'avoir publié la solution, ça pourra peut être servir à quelqu'un un jour ou l'autre...
A+
-- Romain PETIT http://cerbermail.com/?IJmancZl88 (cliquez sur le lien ci-dessus pour me contacter en privé)
Eric Demeester
dans (in) fr.comp.developpement.agl.windev, KPITN <Sancho_nts(noSpam)@hotmail.com> ecrivait (wrote) :
Bonsoir,
Pour ne pas changer aucune reponse
C'est que malheureusement personne ne l'avait, j'imagine. Vous aurez probablement noté, si vous suivez régulièrement ce forum de discussions, que de nombreuses questions y trouvent réponse, tout de même :)
mais j'ai trouver la solution :
Comme Romain, je vous remercie de l'avoir donnée ici car elle pourra probablement aider d'autres contributeurs.
Cordialement,
-- Eric
dans (in) fr.comp.developpement.agl.windev, KPITN
<Sancho_nts(noSpam)@hotmail.com> ecrivait (wrote) :
Bonsoir,
Pour ne pas changer aucune reponse
C'est que malheureusement personne ne l'avait, j'imagine. Vous aurez
probablement noté, si vous suivez régulièrement ce forum de discussions,
que de nombreuses questions y trouvent réponse, tout de même :)
mais j'ai trouver la solution :
Comme Romain, je vous remercie de l'avoir donnée ici car elle pourra
probablement aider d'autres contributeurs.
dans (in) fr.comp.developpement.agl.windev, KPITN <Sancho_nts(noSpam)@hotmail.com> ecrivait (wrote) :
Bonsoir,
Pour ne pas changer aucune reponse
C'est que malheureusement personne ne l'avait, j'imagine. Vous aurez probablement noté, si vous suivez régulièrement ce forum de discussions, que de nombreuses questions y trouvent réponse, tout de même :)
mais j'ai trouver la solution :
Comme Romain, je vous remercie de l'avoir donnée ici car elle pourra probablement aider d'autres contributeurs.