Copier du texte dans le presse papier.

Copier du texte dans le presse papier.

SetClipboardData

Voir version :

Pas de dépendances

Télécharger :

#include <windows.h>

void copier_dans_presse_papier(const char *s)
{
    if(OpenClipboard(NULL))
    {
        HGLOBAL h;
        EmptyClipboard();
        h = GlobalAlloc(GHND, strlen(s) + 1);
        if(h)
        {
            char *p = GlobalLock(h);
            if(p)
            {
                strcpy(p, s);
                GlobalUnlock(h);
                SetClipboardData(CF_TEXT, h);
            }
            GlobalFree(h);
        }
        CloseClipboard();
    }
}

int main(void)
{
    copier_dans_presse_papier("Hello World !");
    return 0;
}




Commentaires

	Encore une fois, un grand merci à magma :
	http://www.siteduzero.com/forum-83-643887-p1-utiliser-le-presse-papiers-sous-windows.html#r6192139

	Ce programme va inscrire Hello World ! dans le presse papier : c'est à dire que dès que vous aurez lancé le programme, ouvrez un bloc note, 
	ou n'importe quel éditeur de texte, faites CTRL+V, et hop, le mot apparaît !

	Pour expliquer rapidement, on ouvre le presse papier grâce à OpenClipboard.
	On vide ce qu'il y a dedans.

	Puis on crée un objet HGLOBAL grâce à GlobalAlloc, on prend un pointeur dessus grâce à GlobalLock, on copie notre chaîne dedans, on unlock,
	on la passe à SetClipboardData en tant que texte*, puis on free, et on ferme le clipboard.

	* le presse papier peut contenir du texte, une image, des fichiers selectionnés, etc...