Partage
  • Partager sur Facebook
  • Partager sur Twitter

Presse papier

[C++]

    19 décembre 2005 à 23:19:24

    Est-il possible de copier en C++ un string dans le presse papier pour pouvoir le réutiliser?? Merci
    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2005 à 3:23:41

      La seul chose que je connais sur le presse-papier (de Windows), c'est :
      HANDLE hGlobal;
      hGlobal = GlobalAlloc(GHND | GMEM_SHARE, sizeof("Le Texte")+1);
      char *pointeur;
      pointeur = (char *)GlobalLock(hGlobal);
      strcpy(pointeur, "Le Texte");
      GlobalUnlock(hGlobal);

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


      Mais je pense que tu peut remplacer "Le texte" par un "string".
      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2005 à 8:29:43

        Je connais pas trop les erreurs mais faut pas mettre sizeof ("Le Texte ")+1, car si c'est une constante chaine ca marchera (encore que ....) mais si il remplace par un pointeur sizeof(Texte) va lui renvoyé 4, il faut qu'il utilise strlen ().
        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2005 à 12:05:00

          Pour pouvoir mettre un string dans le presse papier il faut d'abord le convertir en char* :

          string tonString = "Ton texte";
          HANDLE hGlobal;
          hGlobal = GlobalAlloc(GHND | GMEM_SHARE, sizeof("Le Texte")+1);
          char *pointeur;
          pointeur = (char *)GlobalLock(hGlobal);
          strcpy(pointeur,tonString.c_str());
          GlobalUnlock(hGlobal);

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

          Et il faut inclure "windows.h"
          • Partager sur Facebook
          • Partager sur Twitter

          Presse papier

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown