2010-02-03 4 views
0

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

Répondre

0

Alors, quelle est la liste des formats de votre sortie de débogage? Et quel genre de délai se produit entre la copie et la pâte? Vous aurez certainement besoin de temps d'inactivité entre ces coupures de code. c'est-à-dire que vous ne pouvez pas copier et vous attendrez immédiatement à pouvoir coller.

0

Vous pouvez utiliser l'application Sharp IMG Viewer 2008 pour examiner les formats de presse-papiers. L'application .NET peut être téléchargée à partir de here. Vous pouvez trouver des informations plus détaillées en lisant la documentation.

Questions connexes