begin process at 2010 02 10 09:30:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

copier du texte dans le presse papier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

copier du texte dans le presse papier

jeudi 26 août 2004 à 22:54:07 | copier du texte dans le presse papier

arconius

Salut à tous :),

J'ai besoin d'un peu d'aide car je galère avec le presse papier.
Ce que je veux faire est très simple, j'ai une variable char qui contient admetons "Salut !!" et je voudrais copier son contenu dans le presse papier.

A priori, cela me paraissait hyper simple seulement voilà, je ne trouve aucun exemple qui m'aide vraiment.

j'ai trouver ça sur Cpp :

DWORD len;
HGLOBAL hgbl;
char *pmem;
len = GetWindowTextLength(hwnd);
if(!len) return 0;
hgbl = GlobalAlloc(GHND, len + 1);
if(!hgbl) return 0;
pmem = (char*)GlobalLock(hgbl);
GetWindowText(hwnd, pmem, len + 1);
GlobalUnlock(hgbl);
OpenClipboard(hwnd);
EmptyClipboard();
SetClipboardData(CF_TEXT, hgbl);
CloseClipboard();



seulement je ne comprend pas trop comment ça fonctionne, dotant plus qu'apparement il récupère ici le texte grace à GetWindowText.

Je pensais m'en sortir en bidouillant ça mais j'y arrive :(, y aurais t'il quelqu'un de plus malin ici ??

Merci d'avance :)
vendredi 27 août 2004 à 00:20:24 | Re : copier du texte dans le presse papier

glipper

Membre Club
Tiens cette partie de code te copie la chaine "Le Texte" dans le presse papier :) Je trouve ca quand meme bien compliqué pour faire copier du texte dans le presse papier, mais apparament la fonction SetClipboardData veut un HANDLE comme second parametre donc bon....

HANDLE hGlobal;
hGlobal = GlobalAlloc(GHND | GMEM_SHARE, sizeof("Le Texte")+1);
char *pointeur;
pointeur = (char *)GlobalLock(hGlobal);
strcpy(pointeur, "Le Texte");
GlobalUnlock(hGlobal);

OpenClipboard(hwnd);
EmptyClipboard();
SetClipboardData(CF_TEXT, hGlobal);
CloseClipboard();


Glipper
vendredi 27 août 2004 à 00:22:29 | Re : copier du texte dans le presse papier

arconius

merci t trop une star :)
vendredi 27 août 2004 à 00:24:44 | Re : copier du texte dans le presse papier

glipper

Membre Club
Une star ? Non c un penguin !!! ;)
Glipper

ps : le code n'est pas de moi mdr je n'ai fait que l'adapter
vendredi 27 août 2004 à 11:04:05 | Re : copier du texte dans le presse papier

magic_Nono

Membre Club
un autre



void BVisuel::copieTextDsPressePapier(const BString &txt)
{
/// --------------------------------------------------------------------------------------
/// ---------------- BVisuel::copieTextDsPressePapier(const BString& txt) ----------------
/// --------------------------------------------------------------------------------------
/// ----- Objectif : copie un txt ds le presse papier
/// ----- PreCond : presse papier préhenptable
/// ----- PostCond : presse papier vidé & remplacé
/// ----- Etat : 1 (-1<0<1<2)
/// --------------------------------------------------------------------------------------
/// ----- const BString& txt : texte à copier
/// --------------------------------------------------------------------------------------
/// ----- Var Muettes (cf.partie préc) (1) : txt
/// ----- Var Internes à la fonction (2) : hClipboardData ,pchData
/// ----- Var In (1) : txt
/// ----- Var In Globales Constantes (2) : CF_TEXT ,GMEM_DDESHARE
//BString plomp=txt;plomp+="\n\nprêt a être copié le txt ds le presse papier"; informe(plomp);
if(!OpenClipboard(NULL))
informe("échec d'ouverture du presse papier",false);
else
{
if(!EmptyClipboard())
informe("échec de vidage du presse papier",false);
// informe(msg);
// recup Net DEB
/// algo : {Clipboard locked && Clipboard empty.}
/// algo : allocate the global memory for our data.
HGLOBAL hClipboardData;
hClipboardData=GlobalAlloc(GMEM_DDESHARE, txt.getLength()+1);
// Calling
/// Nota : GlobalLock returns a pointer to the data associated with the handle
char*pchData;
pchData=(char*)GlobalLock(hClipboardData);
/// algo : copie
strcpy(pchData, (const char*)txt);
// strcpy(pchData, LPCSTR(strData));
/// algo : unlock the memory
/// Nota : never call GlobalFree : automatically when EmptyClipboard is next called.
GlobalUnlock(hClipboardData);
/// algo : set the Clipboard data by specifying that ANSI text is being used and passing the handle to the global memory.
SetClipboardData(CF_TEXT,hClipboardData);
/// algo : close the Clipboard
// recup FIN
if(!CloseClipboard())
informe("échec de fermeture du presse papier",false);
/// algo : {Clipboard unlocked}
}
}



et là, tt est commenté....
à l'extreme....

je me suis plutot laché qd je l'ai fait lol

++



Magic Nono: l'informagicien!
vendredi 27 août 2004 à 11:05:16 | Re : copier du texte dans le presse papier

magic_Nono

Membre Club
rq: il s'agit d'une méthode statique ou alors d'une meth ds le namespace BVisuel....

si tu ve, tu pe supprimer....


Magic Nono: l'informagicien!


Cette discussion est classée dans : presse, papier, copier, len, hgbl


Répondre à ce message

Sujets en rapport avec ce message

copier du texte dans le presse papier [ par arconius ] Je voudrais copier du texte ou une variable dans le presse papier afin de pouvoir les réutiliser dans une autre application. Je connais l'instruction copier du texte dans le presse papier [ par arconius ] Je voudrais copier du texte ou une variable dans le presse papier afin de pouvoir les réutiliser dans une autre application. Je connais l'instruction copier une image dans le presse papier [ par cyb_dev ] BonjourJe souhaiterais savoir comment faire pour copier le contenu d'un composant image dans le presse papier, puis comment faire pour copier cette im copier une picture dans le presse papier [ par blinix123 ] Bonjour,je suis actuellement en C++ avec les MFC et GDI+. J'ai une picture qui contient une image, laquelle j'aimerais copier dans le presse papier po lire le presse papier ? [ par supergrey ] Bonjour, je voudrais savoir si quelqu'un aurai une source ou un bout de code permettant de lire le text contenu dans le presse papier.Merci GlobalLock [ par Ziman ] Bonjour,je viens d'un peu chercher après des sources pour gérer le presse-papier et j'en ai trouvé une de BruNews. Bien faite, comme d'hab et je compr presse papier [ par skaith ] Comment utiliser le presse papier sous kylix en C++, merci Presse papier Windows [ par SAKingdom ] Salut.J'aimerais savoir comment récupérer le presse-papier de Windows.Merci. Effacer le presse papier [ par C++ ] salut, comment faut effacer le presse papier? Comment ecrire ds le presse papier [ par obasileus ] Salut, est ce qqun sait comment copier le contenue d'un tableu par exemple ds le presse papier sous windows.Merci


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales