Clipboard Copy-Paste no funciona en un servicio en Win Server 2008 / Vista 64bit
Actualización: este problema se ha resuelto.
Puedes leer sobre la solución aquí:¿Crear un proceso en una sesión distinta de cero desde un servicio en Windows-2008-server?
¡Gracias a todos!
Hola,
Estoy tratando de usar la API del Portapapeles (en Delphi) para extraer imágenes de documentos de Word. mi código funciona bien en Windows XP / 2003 pero en Windows 2008 64 bit no funciona. en win 2008 recibo un error que dice que Clipboard.Formats está vacío y no contiene ningún formato.
La imagen parece estar copiada en el Portapapeles (puedo verla en el portapapeles a través de Word), pero cuando trato de preguntarle al portapapeles qué formato tiene, dice que no tiene ningún formato.
¿Cómo puedo acceder al portapapeles mediante programación en win 2008 / Vista? por lo que sé de 2008 de 64 bits, podría ser un problema de seguridad ...
Aquí está el fragmento de código:
Así es como estoy tratando de copiar la imagen en el portapapeles:
W.ActiveDocument.InlineShapes.Item(1).Select; // W is a word ole object
W.Selection.Copy;
y así es como trato de pegarlo.
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');
Gracias de antemano, Itay