IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Agir sur le presse-papier en C


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 11
    Points
    11
    Par défaut Agir sur le presse-papier en C
    Bonjour,

    Tout est dans le titre, je suis actuellement en train de réaliser un petit projet personnel, et j'avoue que je cherche sur internet depuis un moment déjà, car je souhaiterais savoir s'il était possible d'agir sur le presse-papier (clipboard en anglais) en y envoyant des données, une chaîne de caractères par exemple ! S'il y avait une fonction pour, une bibliothèque ou autre !

    Merci d'avance de vos réponses.

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Typiquement, le presse-papiers est une fonctionnalité de l'interface graphique dont le fournisseur dépend du système d'exploitation. Il n'y a donc pas de solution portable en C mais le système de fenêtrage avec lequel tu as implémenté ton interface graphique devrait te permettre d'y accéder, jette un oeil à sa documentation.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 11
    Points
    11
    Par défaut
    Je souhaite simplement faire ça sous Windows uniquement, mais malheureusement je n'ai lié aucune interface graphique, je fais ça via la console. Donc pour toi je devrais ajouter une bibliothèque permettant de faire une interface, afin de pouvoir accéder au clipboard ?

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Ok, alors tu dois interagir directement avec le presse-papiers Windows via l'API Win32 dédiée : https://msdn.microsoft.com/en-us/lib.../ff468802.aspx .

    Si le C n'est pas une restriction et que tu envisages d'utiliser régulièrement ce genre de fonction spécifique de l'OS, je ne saurais trop te conseiller de coder ton programme en C#. C'est la norme pour le développement Windows et c'est d'une efficacité redoutable (je hais Microsoft et ses produits, mais force m'est de le reconnaître.. ).

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 11
    Points
    11
    Par défaut
    Okay, merci de ta réponse rapide et précise ! Ainsi que de tes conseils, je vais essayer via l'API, je me suis renseigné et effectivement la plupart des bibliothèques gèrent aussi cela (je pense surtout à la SDL)

    Edit : https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx Il semblerait que cela ne soit qu'en C++, tu confirmes ?

  6. #6
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Je ne connais pas vraiment l'API Win32 mais pour autant que je le sache, c'est une interface C. Le label « C++ » est probablement un abus de langage dans cette section de la doc Microsoft.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 11
    Points
    11
    Par défaut
    Cela fonctionne parfaitement !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <stdio.h>
    #include <stdlib.h>
    #include <Windows.h>
     
    int my_copy(const char* output)
    {
        const size_t len = strlen(output) + 1;
        HGLOBAL hMem =  GlobalAlloc(GMEM_MOVEABLE, len);
        memcpy(GlobalLock(hMem), output, len);
        GlobalUnlock(hMem);
        OpenClipboard(0);
        EmptyClipboard();
        if (SetClipboardData(CF_TEXT, hMem) == NULL)
            return -1;
        CloseClipboard();
        return (0);
    }
     
    int main()
    {
       return(my_copy("Testohoho"));
    }
    Pour ceux qui chercherons par là !
    J'ai trouvé le code là dessus http://stackoverflow.com/questions/1...clipboard-in-c
    Et je l'ai adapté à ma sauce afin d'en faire une fonction ou je lui envoie le texte directement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Copier sur le presse-papier
    Par philenull dans le forum VBA Access
    Réponses: 6
    Dernier message: 10/10/2013, 08h24
  2. sauver fichier complet du presse-papiers sur le disque dur
    Par Nicolas_75 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 11/11/2009, 15h02
  3. Exécution d'un code de la faq sur le Presse papier
    Par flet le kid dans le forum VBA Access
    Réponses: 10
    Dernier message: 29/06/2009, 11h06
  4. Réponses: 1
    Dernier message: 30/05/2007, 11h33
  5. lire nom de fichier pour sauvegarde ensuite sur presse papier
    Par chapeau_melon dans le forum VBScript
    Réponses: 3
    Dernier message: 21/03/2007, 20h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo