Mer 31/07/2013 - Presse-papier
Posté : mer. 31 juil. 2013 10:19
Presse-papier
L'outil Copier-coller étant plus dépendant de Windows que les autres, ses spécifications seront affinées en fonction de ce qu'il est possible de faire, et il y a donc d'abord une phase de R&D.
La première étape est de recevoir les notifications de changement du presse-papier de Windows. Il y a plusieurs méthodes décrites ici, mais c'est celle du Clipboard Viewer qui a été choisie afin de rester compatible avec Windows XP. Cette méthode est d'ailleurs assez étrange car basée sur une coopération des programmes, Windows ne "discutant" qu'avec le premier de la liste, et chacun devant propager les messages aux autres programmes via une chaîne.
Cette méthode vient d'être implémentée dans XT4 grâce à un exemple simple. La Console intercepte bien les [Ctrl+C] faits dans d'autres applications. La récupération et l'utilisation de ces données seront traitées plus tard. Par contre, l'inscription dans la liste prend une bonne demi-seconde au démarrage d'XT4, sans doute à cause des délais donnés par Windows aux applications pour répondre aux SendMessage. Il faudra sans doute confier cette tâche à un thread séparé. (Il a de toute façon été prévu d'implémenter un système de création de threads à la volée, afin d'effectuer certaines actions en tâche de fond, comme les sauvegardes automatiques.)
L'outil Copier-coller étant plus dépendant de Windows que les autres, ses spécifications seront affinées en fonction de ce qu'il est possible de faire, et il y a donc d'abord une phase de R&D.
La première étape est de recevoir les notifications de changement du presse-papier de Windows. Il y a plusieurs méthodes décrites ici, mais c'est celle du Clipboard Viewer qui a été choisie afin de rester compatible avec Windows XP. Cette méthode est d'ailleurs assez étrange car basée sur une coopération des programmes, Windows ne "discutant" qu'avec le premier de la liste, et chacun devant propager les messages aux autres programmes via une chaîne.
Cette méthode vient d'être implémentée dans XT4 grâce à un exemple simple. La Console intercepte bien les [Ctrl+C] faits dans d'autres applications. La récupération et l'utilisation de ces données seront traitées plus tard. Par contre, l'inscription dans la liste prend une bonne demi-seconde au démarrage d'XT4, sans doute à cause des délais donnés par Windows aux applications pour répondre aux SendMessage. Il faudra sans doute confier cette tâche à un thread séparé. (Il a de toute façon été prévu d'implémenter un système de création de threads à la volée, afin d'effectuer certaines actions en tâche de fond, comme les sauvegardes automatiques.)