Pas de dépendances
#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; }
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...