Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :


Projet ClipboardViewer

Date de publication : 29/09/2002

Par Pierre Castelain
 

Comment détecter que le presse-papier a été modifié et comment afficher les divers formats qu'il contient.


1. Description
2. Mise en oeuvre
3. Téléchargement


1. Description

Comme c'est souvent le cas, l'idée de ce projet vient d'une discussion sur le forum Delphi de developpez.com. La question initiale était de savoir comment détecter qu'un changement est intervenu dans le presse papier. Après avoir cherché un peu dans les documentations de Microsoft, il apparait que la chose est techniquement assez simple car une API a été concue pour ça.


2. Mise en oeuvre

L'API fournie par Windows est relativement simple car elle ne met en jeu que deux fonctions essentielles (SetClipboardViwer et ChangeClipboardChain) et quelques messages (en particulier WM_CHANGECBCHAIN et WM_DRAWCLIPBOARD). Le projet initial consistait juste à démontrer l'utilisation de cette API, mais comme souvent, une idée s'impose : pourquoi ne pas visualiser le contenu du presse-papier à chaque modification ?

Vous trouverez donc dans les liens suivants un projet nommé ClipboardViewer (original non ?) qui, à chaque modification du presse-papier, affiche la liste des formats disponibles et permet d'un clic de souris de voir le contenu d'un de ces formats. Les formats reconnus sont un peu limités mais rien de vous empêche d'en rajouter vous-même.

J'ai également intégré un projet dénommé MicroDemo qui ne contient que le code de détection.


3. Téléchargement

Le projet ClipboardViewer (Delphi 5) dans une archive compressée : ClipboardViewer.zip
Le projet MicroDemo (Delphi 5) dans une archive compressée : MicroDemo.zip


Articles
Delphi 2005 : Découvrez le futur Delphi 2005
DirectX : Introduction à DirectX 9 en Delphi
Variables d'environnement : Présentation, description et utilisation des variables d'environnement sous Windows
Mailslots : Présentation des mailslots et de leur utilisation en Delphi pour la communication inter-processus
Projets complets avec sources
NumericalParser : Parser numérique en Delphi afin de transformer une chaîne de caractères en valeur flottante ou entière.
RegSearch : Composant de recherche dans la base de registre
CDAReader : Lecture des informations contenues dans les fichier CDA de Windows
ScreenSaverPreview : Composant d'affichage de l'aperçu des économiseurs d'écran de Windows
ScanResources : Programme d'exploration des ressources des programmes ou des dll d'un répertoire
ClipboardViewer : Démonstration de la détection des modifications et de l'affichage du contenu du presse-papier
Matrix : Tentative de reproduction en Delphi de l'animation bien connue du film Matrix
Sources et exemples
EMFTransform : Transformation (rotation, inversion, miroir) d'un metafile Windows en mémoire
DeleteKeyTree : Suppression récursive d'un clé de la base de registre
MultiStrings : Routines de gestion de tableaux de chaînes C
GetDllFilename : Pour récupérer le chemin d'une dll par son handle
Extension du shell : Exemple d'extension du menu contextuel du shell de Windows
TriStringGrid : Exemple de tri par colonne d'un composant TStringGrid à l'aide d'un algorithme de tri rapide (quick sort)
XPManifestCPL : Utilisation des contrôles XP dans une application du panneau de configuration (cpl)
Bouboules : Modélisation à l'aide du design pattern Observer
Divers
Diagramme ternaire : Un logiciel gratuit de tracé de diagramme ternaire


Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2002 Pierre Castelain. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsable bénévole de la rubrique Delphi : Alcatîz -