Appels directs aux APIs :
OpenClipboard,
GetClipboardData, etc.
Ce qui est vrai aujourd'hui ne le sera peut-être plus demain

L'écriture dans le
Clipboard n'a rien de standardisé. Si l'application qui y insère une info
CF_TEXT décide maintenant de remplacer les images par un espace, plus tard elle pourrait préférer utiliser un "?".
A titre d'exemple, le même texte avec la même sous-chaîne sélectionnée dans NotePad et Winword, Winword ajoute systématiquement un
#13#10 à la fin du texte ! Chacun fait ce qui lui plaît

Tu pourrais même avoir des différences entre navigateurs...
Maintenant en sachant que le texte provient d'un navigateur et avec de la chance, il y a peut-être dans le
clipboard une entrée formatée HTML facilement "parsable".
TClipboard n'est pas adapté à cette utilisation. Il faut faire appel directement aux APIs :
- Ouvrir le Clipboard (OpenClipboard),
- Récupérer le nombre de format stocké (CountClipboardFormats)
- Une boulce d'énumération (EnumClipboardFormats)
- Récupération des données brutes (GetClipboardData)
- Analyse
- Fermeture du Clipboard (CloseClipboard).
Beaucoup de conditionnel je sais, mais pas d'autre choix ! Autant voir maintenant s'il y a éventuellement une "normalisation" entre navigateur. Sinon tu vas revenir nous voir dans quelques mois (années) en nous disant : "ça marchait, ça marche plus"
Edit:
Après contrôle, tu peux utiliser
TClipboard.GetAsHandle qui implémente
GetClipboardData. (+
FormatCount,
Formats, etc.)
Partager