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

API, COM et SDKs Delphi Discussion :

Comment vider le presse-papiers Office ?


Sujet :

API, COM et SDKs Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Comment vider le presse-papiers Office ?
    Bonjour,

    Je souhaiterai pouvoir vider le presse-papiers Office de Word (Menu Edition/Presse-papiers Office) dans un programme Delphi.

    Quelqu'un a une idée ?

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    regarde du coté de DataObject.Clear.
    A tester.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    La piste était bonne et j'ai trouvé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ClearClipboardText()
    Dim objData As New DataObject
        objData.SetText ""
        objData.PutInClipboard
    End Sub
    Mais je ne sais pas trop si je peux faire la même chose en delphi. Il y a un type DataObject ?

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par piapia
    Mais je ne sais pas trop si je peux faire la même chose en delphi. Il y a un type DataObject ?
    En cherchant un peu :

    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
    unit MSComctlLibXP;
      IVBDataObject = interface;
      DataObject = IVBDataObject;
     
    // *********************************************************************//
    // Interface: IVBDataObject
    // Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
    // GUID:      {2334D2B1-713E-11CF-8AE5-00AA00C00905}
    // *********************************************************************//
      IVBDataObject = interface(IDispatch)
        ['{2334D2B1-713E-11CF-8AE5-00AA00C00905}']
        procedure Clear; safecall;
        function GetData(sFormat: Smallint): OleVariant; safecall;
        function GetFormat(sFormat: Smallint): WordBool; safecall;
        procedure SetData(vValue: OleVariant; vFormat: OleVariant); safecall;
        function Get_Files: IVBDataObjectFiles; safecall;
        property Files: IVBDataObjectFiles read Get_Files;
      end;

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Ca fonctionne......... mais sur le presse-papier windows et non pas le presse-papier office!!!! :-(

    Une autre idée ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    J'ai trouvé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Clipboard").Controls(4).Execute
    mais ça ne fonctionne que sur Office2000

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par piapia
    Une autre idée ?
    Non, mais quelle version d'Office utilises-tu ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    En fait, je voudrais que ça marche quelque soit la version d'Office.
    Si les fonctions sont différentes, je ferai un case mais déjà faudrait il trouver la fonction pour les autres versions...

Discussions similaires

  1. Vider le Presse Papier Office
    Par pascal27 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2011, 15h49
  2. Comment vider le presse-papier ?
    Par Dahu33CYB dans le forum Access
    Réponses: 3
    Dernier message: 21/04/2005, 12h19
  3. [VBA] Vider le presse papier
    Par Kelyane dans le forum VBA Access
    Réponses: 7
    Dernier message: 07/10/2003, 12h05
  4. [VBA-E] Vider le presse-papier
    Par tinej dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2002, 09h33
  5. [Système] Vider le Presse Papier
    Par babe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/09/2002, 17h46

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