WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et réalisation d'une application de gestion du presse-papier de Windows 7.

( Télécharger le fichier original )
par MAKA MAKA Ebenezer NOUMBO NGUETSOP Stephane Cedric
ENSET DE DOUALA - DIPET II 2013
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

2.1.2. Fonctionnement du presse-papier

Pour qu'une application puisse envoyer des données dans le presse-papier, il faut d'abord qu'elle réserve un espace mémoire en utilisant les méthodes GlobalAlloc(), GlobalLock()

et GlobalUnlock(). Ensuite elle ouvre le presse-papier via la méthode OpenClipboard() , le vide via la méthode EmptyClipboard(), y place les données via la méthode SetClipboard() et enfin ferme le presse-papier via la méthode CloseClipboard().[13]

Figure 2.1 : Transferer les données au fornat Text dans le presse-papier

Obtenir des données du presse-papier est encore plus facile et implique d'ouvrir le presse-papier, déterminer lequel des formats disponible dans le presse-papier est compatible à l'application (cette opération est spécifique à l'application), récupérer la donnée puis fermer le presse-papier.

Figure 2.2 : Récupérer les données au format Text du presse-papier 2.1.2.1. Description du processus d'extraction des données

L'extraction des données du presse-papier contenues dans l'espace alloué par le système se déroule en quatre (04) étapes (Figure 2.3). On identifie d'abord les fonctions de user32.dll ou win32k.sys permettant l'accès aux données du presse-papier. Les fonctions décrites dans ces deux fichiers [14] fournissent un bon point de départ pour choisir les fonctions les plus appropriées. Puis on applique le Reverse Engineering16 sur ces fonctions pour reconstituer la structure du presse-papier. Pendant l'étape suivante, on ajoute la capacité de rechercher des structures (données dans un format bien précis) au programme d'analyse de mémoire. Enfin,

23

16 Reverse Engineering : technique de décompilation d'un programme informatique.

24

on recherche dans l'espace mémoire réservé au presse-papier des données compatible à l'application et on effectue la copie du presse-papier.

Reconstituer la structure du presse-papier

Coder les structures dans le
programme d'analyse de
mémoire

Exécuter l'analyse de la
mémoire sur l'espace
mémoire réservé au presse-
papier

Identifier les fonctions appropriées

Figure 2.3 : Reconstitution de la structure du presse-papier par Reverse Engineering [8]

2.1.2.2. Les fonctions du presse-papier

Le presse-papier via la classe Clipboard expose 24 méthodes (Tableau 2.3). Ces méthodes permettent d'obtenir des informations sur l'état du presse-papier, de le vider, d'y envoyer des données, d'extraire son contenu etc. Chacune de ces méthodes est sollicitées à un moment ou à un autre du fonctionnement du presse-papier en fonction de l'opération encours. La classe Clipboard est statique, on n'a donc pas besoin de l'instancier pour pouvoir l'utiliser.

Tableau 2.3 : Fonctions de la classe Clipboard. [14]

Nom

Description

Clear

Supprime toutes les données du Presse-papier.

ContainsAudio

Indique si le Presse-papier contient des données au format WaveAudio.

 

25

ContainsData

Indique si le Presse-papier contient des données au format spécifié ou qui peuvent être converties dans ce format.

ContainsFileDropList

Indique si le Presse-papier contient des données au format FileDrop ou qui peuvent être converties dans ce format.

ContainsImage

Indique si le Presse-papier contient des données au format Bitmap ou qui peuvent être converties dans ce format.

ContainsText

Indique si le Presse-papier contient des données au format Text ou UnicodeText, selon le système d'exploitation.

ContainsText(TextDataFormat)

Indique si le Presse-papier contient des données textuelles au format indiqué par la valeur TextDataFormat spécifiée.

Equals(Object)

Détermine si le Object spécifié est égal au Object actif. (Hérité de Object.)

Finalize

Autorise Object à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant que Object soit récupéré par l'opération garbage collection. (Hérité de Object.)

GetAudioStream

Récupère un flux audio dans le Presse-papier.

GetData

Récupère des données du Presse-papier dans le format spécifié.

GetDataObject

Récupère les données figurant dans le Presse-papier système.

GetFileDropList

Récupère une collection de noms de fichiers du Presse-papier.

 

26

GetHashCode

Sert de fonction de hachage pour un type particulier. (Hérité de Object.)

GetImage

Récupère une image du Presse-papier.

GetText

Récupère des données textuelles du Presse-papier dans le format Text ou UnicodeText, selon le système d'exploitation.

GetText(TextDataFormat)

Récupère des données textuelles du Presse-papier dans le format indiqué par la

valeur TextDataFormat spécifiée.

GetType

Obtient le Type de l'instance actuelle. (Hérité de Object.)

MemberwiseClone

Crée une copie superficielle de

l'objet Object actif. (Hérité de Object.)

SetAudio( Byte ())

Ajoute un tableau Byte au Presse-papier dans le format WaveAudio après l'avoir converti en Stream.

SetAudio(Stream)

Ajoute Stream au Presse-Papier dans le format WaveAudio.

SetData

Ajoute des données au Presse-papier dans le format spécifié.

SetDataObject(Object)

Place les données non persistantes dans le Presse-papier système.

SetDataObject(Object, Boolean)

Place les données dans le Presse-papier système et spécifie si les données doivent rester dans le Presse-papier lorsque l'utilisateur quitte l'application.

SetDataObject(Object, Boolean, Int32, Int32)

Tente de placer les données dans le Presse-papier système le nombre spécifié de fois et dans le délai spécifié entre les tentatives, en laissant éventuellement les données dans le Presse-papier lorsque l'utilisateur quitte l'application.

 

27

SetFileDropList

Ajoute une collection de noms de fichiers au Presse-papier dans le format FileDrop.

SetImage

Ajoute Image au Presse-Papier dans le format Bitmap.

SetText(String)

Ajoute des données textuelles au Presse-papier dans le format Text ou UnicodeText, selon le système d'exploitation.

SetText(String, TextDataFormat)

Ajoute des données textuelles au Presse-papier dans le format indiqué par la valeur TextDataFormat spécifiée.

ToString

Retourne un String qui représente le Object actif. (Hérité de Object.)

 

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Nous voulons explorer la bonté contrée énorme où tout se tait"   Appolinaire