J'essaie d'utiliser l'API Clipboard (en Delphi) pour extraire des images à partir de documents Word. mon code fonctionne correctement sous Windows XP/2003 mais dans Windows 2008 64 bits cela ne fonctionne pas. dans win 2008 j'obtiens une erreur disant que Clipboard.Formats est vide et ne contient aucun format.Presse-papiers Copy-Paste ne fonctionne pas sur Win Server 2008/Vista 64bit
L'image semble être copiée dans le Presse-papiers (je peux le voir dans le presse-papiers via Word) mais quand j'essaie de demander au presse-papier quel format at-il dit il n'a aucun format.
comment puis-je accéder au presse-papiers par programmation sur win 2008/Vista? de ce que je sais de 2008 64 bits, il est peut-être un problème de sécurité ...
est ici l'extrait de code:
Voilà comment je suis en train de copier l'image dans le presse-papiers:
W.ActiveDocument.InlineShapes.Item(1).Select; // W is a word ole object
W.Selection.Copy;
et c'est ainsi que j'essaie de le coller.
Clipboard.Open;
Write2DebugFile('FormatCount = ' + IntToStr(Clipboard.FormatCount)); // FormatCount=0
For JJ := 1 to Clipboard.FormatCount Do
Write2DebugFile('#'+ IntToStr(JJ) + ':' + IntToStr(Clipboard.Formats[JJ]));
If (Clipboard.HasFormat(CF_BITMAP)) or
(Clipboard.HasFormat(CF_PICTURE)) or
(Clipboard.HasFormat(CF_METAFILEPICT)) then // all HasFormat calls returns false.
Begin
Jpeg := TJPEGImage.Create;
Bitmap := TBitmap.Create;
Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
Jpeg.Assign(Bitmap);
Jpeg.SaveToFile(JpgFileN);
try Jpeg.Free; except; end;
ResizeImage(JpgFileN,750);
Write2DebugFile('Saving ' + JpgFileN);
End
else Write2DebugFile('Doesnt have the right format');
Merci à l'avance, Itay