récupérer l'adresse d'un fichier dans le presse papier

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

récupérer l'adresse d'un fichier dans le presse papier

Message par dayvid »

salut a tous,

comment ont fait pour récupérer l'adresse d'un fichier
que ont vient de copier dans le presse papier de windows ?

alors, ont peut récupérer du texte mais pas l'adresse d'un fichier
que ont vient de copier précédement

regardez, copiez un fichier, nimporte quoi
ouvrez votre bloc note par éxemple, maintenant collez et ya rien !!!

et sa sa me pose un soucie de taille, je pige rien la dans moi
pourquoi ce fichue texte d'adresse n'est pas accessible
trop mal foutue leur truc la a mon avis

s'auriez-vous comment je puis faire
j'ai éfféctuer et petite recherche mais je n'est rien trouvé

et sinon ou se trouve le presse papier de windows vista
ensuite comment retrouvé l'emplacement de la mémoire
ou est stoquer les information du presse papier

merci d'avence :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par Backup »

sous linux lorsque tu fais

un copier (control+C) sur un fichier

puis qu'ensuite tu execute ce prg

Code : Tout sélectionner

Debug  GetClipboardText()
ça affiche bien l'emplacement du fichier


je n'ai pas essayé sous windows (la bulle de rebooter)
mais ,ça doit marcher aussi :)
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par dayvid »

non pas du tous et je suis coinsser, sa ne marche pas
et en plus j'ai vista mais peut importe
c'est une vrais m...... ce system la
pourquoi l'adresse du fichier n'est pas stoquer en tans que texte ?
merci
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par Backup »

sous XP pour voir le contenu du presspapier

faut executer la commande "clipbrd" (menu demarrer)

sous Vista cette commande n'existe plus
Sous Vista, cette commande n'existe plus. Pour l'ajouter, il suffit de copier le fichier clipbrd.exe (que vous trouviez sous Windows XP dans le dossier Windows\system32) dans le dossier Windows\system32 de votre Vista.
Vous pouvez aussi télécharger ce fichier exécutable, puis faire un clic droit dessus > Exécuter en tant qu'administrateur, et la commande sera ajoutée automatiquement.
D'autres programmes aussi permettent d'afficher le contenu du presse papier, par exemple :

* Presse Papier
* 101Clips



Malheureusement le presse-papier de Windows ne permet de conserver qu'un item à la fois. Il existe des logiciels permettant d'augmenter la capacité du presse-papier et de copier-coller un nombre illimité d'éléments, c'est le cas notamment de :

* Télécharger Ditto
* Télécharger ClipTray
recherche dans les APIs , il doit y avoir une soluce ;)
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par dayvid »

merci dobro pour ta réponce, j'ai également recherche de mon coté mais pas moyen de trouvé ce que j'ai voulue, et sinon comment je peut manipuler le presse papier
ce que je veut c'est pouvoir prendre et envoyer des donnée spécifique
comme des adresse de fichier, image, etc tu comprend :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par Backup »

la solution est ici !! :)

mais faut traduire en purebasic car elle est en Delphi

http://www.swissdelphicenter.ch/torry/s ... php?id=791
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par kernadec »

bonjour dayvid
sur le sujet j'ai reçu un cours de Fred ici:
http://www.purebasic.fr/french/viewtopi ... rd#p108476

Cordialement
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par Backup »

rien a voir !!

il veux récuperer le path d'un fichier copié dans windows (avec control+C)

tu selectione un fichier dans ton arborescence
tu fait control+C
(en principe le chemin du fichier est dans le presspapier)
seulement sous windows , impossible de le récuperer par purebasic

par contre le getclipboard() fonctionne tres bien sous Linux ! :)

en fin de compte c'est peut etre un bug

j'ai posé la question ici :
http://forums.purebasic.com/english/vie ... 311b83bcd6
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par kernadec »

Je n'ai pas vista heureusement :oops:

mais sinon peut être avec cette outil de vista "SnippingTool"
qui est pour la copie écran, mais qui fonctionne peut être comme presse papier
voir ses paramètres
Pour l'utiliser, faire au clavier : touche Windows, puis tapez 'snip' et entrée.

tu peux aussi récupérer le fichier %systemroot%\system32\clipbrd.exe d'un PC sous XP
dans le même dossier d'un PC sous Vista ou W7 et exécuter directement clipbrd.exe.
sinon il y a des programmes pour libre cela.

cordialement
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par Backup »

Dobro a écrit :sous XP pour voir le contenu du presspapier

faut executer la commande "clipbrd" (menu demarrer)

sous Vista cette commande n'existe plus
Sous Vista, cette commande n'existe plus. Pour l'ajouter, il suffit de copier le fichier clipbrd.exe (que vous trouviez sous Windows XP dans le dossier Windows\system32) dans le dossier Windows\system32 de votre Vista.
Vous pouvez aussi télécharger ce fichier exécutable, puis faire un clic droit dessus > Exécuter en tant qu'administrateur, et la commande sera ajoutée automatiquement.
D'autres programmes aussi permettent d'afficher le contenu du presse papier, par exemple :

* Presse Papier
* 101Clips



Malheureusement le presse-papier de Windows ne permet de conserver qu'un item à la fois. Il existe des logiciels permettant d'augmenter la capacité du presse-papier et de copier-coller un nombre illimité d'éléments, c'est le cas notamment de :

* Télécharger Ditto
* Télécharger ClipTray
recherche dans les APIs , il doit y avoir une soluce ;)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par Backup »

........................
Dernière modification par Backup le dim. 20/mars/2011 14:06, modifié 1 fois.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par kernadec »

:oops: bis j'avais pourtant fait une sieste mince je suis pas réveillé non plus
excuse moi il m'arrive lire de travers ou en travers

ps: ch(13) ch(10) sont < 48 :mrgreen:

cordialement
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par Backup »

kernadec a écrit : ps: ch(13) ch(10) sont < 48 :mrgreen:

cordialement
ha bah oui ! :lol:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par Backup »

bon le dernier code fonctionne parfaitement !!

tres utile meme :)

il est tiré du code Delphi que j'avais trouvé sur le net
netmaestro a bien bossé :)
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Re: récupérer l'adresse d'un fichier dans le presse papier

Message par lepiaf31 »

Bon j'ai pas lu le post en entier mais j'ai récemment eu besoin de faire cela donc voilà ce que j'avais codé:

Code : Tout sélectionner

;ajoute la liste files() au clipboard (le vide avant)
Procedure addClipboardFiles(List files.s())
  Protected hDrop.DROPFILES, *dat, add.i, hMem.i, *buff
  
  If OpenClipboard_(0)
    ;on vide le presse papier
    EmptyClipboard_()
    
    ;on ajoute met tous les fichiers dans une zone mémoire (avec le chr(0))
    FirstElement(files())
    ForEach files()
      If *dat
        add = MemorySize(*dat)
      Else
        add = 0
      EndIf
      *dat = ReAllocateMemory(*dat, add+Len(files())+1)
      PokeS(*dat+add, files(), Len(files()))
      PokeB(*dat+add+Len(files()), 0)
    Next
    hDrop\pFiles = SizeOf(DROPFILES)
    
    hMem = GlobalAlloc_(#GMEM_MOVEABLE, SizeOf(DROPFILES)+MemorySize(*dat))
    *buff = GlobalLock_(hMem)
    CopyMemory(@hDrop, *buff, SizeOf(DROPFILES))
    CopyMemory(*dat, *buff+SizeOf(DROPFILES), MemorySize(*dat))
    GlobalUnlock_(hMem)
    
    SetClipboardData_(#CF_HDROP, hMem)
    CloseClipboard_()
    ProcedureReturn 1
  EndIf
  
  ProcedureReturn 0
EndProcedure

;renvoi les fichiers contenus dans le press-papier dans files()
Procedure getClipboardFiles(List files.s())
  Protected hDrop, i.i, fileName.s
  
  If OpenClipboard_(0) And IsClipboardFormatAvailable_(#CF_HDROP)
    hDrop = GetClipboardData_(#CF_HDROP)
    Repeat
      fileName = Space(1024)
      DragQueryFile_(hDrop, i, @fileName, 1024)
      fileName = Trim(fileName)
      If fileName <> ""
        AddElement(files())
        files() = fileName
      EndIf
      i + 1
    Until fileName = ""
    CloseClipboard_()
    
    ProcedureReturn i
  EndIf
  
  ProcedureReturn 0
EndProcedure
Voilà si ca peut aidé quelqu'un .
Répondre