A área de transferência Copiar e Colar não funciona em um serviço no Win Server 2008 / Vista 64bit
Atualização: este problema foi resolvido.
você pode ler sobre a solução aqui:Criando um processo em uma sessão diferente de zero a partir de um serviço no windows-2008-server?
Obrigado a todos!
Oi,
Estou tentando usar a API da área de transferência (em Delphi) para extrair imagens de documentos do Word. meu código funciona bem no Windows XP / 2003, mas no Windows 2008 de 64 bits não funciona. no win 2008, recebo um erro dizendo que o Clipboard.Formats está vazio e não contém nenhum formato.
A imagem parece ter sido copiada para a área de transferência (posso vê-la na área de transferência via Word), mas quando tento perguntar à área de transferência que formato ele possui, disse que não possui nenhum formato.
como posso acessar a área de transferência programaticamente no win 2008 / Vista? pelo que sei de 2008 de 64 bits, pode ser um problema de segurança ...
aqui está o trecho de código:
É assim que estou tentando copiar a imagem para a área de transferência:
W.ActiveDocument.InlineShapes.Item(1).Select; // W is a word ole object
W.Selection.Copy;
e é assim que eu tento colá-lo.
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');
Agradecemos antecipadamente, Itay