Vista的64位上的服务工作

Vista的64位上的服务工作

本文介绍了剪贴板复制粘贴不会在Win Server 2008中/ Vista的64位上的服务工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

更新:此问题已得到解决。

Update: This issue has been resolved.

你可以看到在这里的解决方案:http://stackoverflow.com/questions/2237696/creating-a-process-in-a-non-zero-session-from-a-service-in-windows-2008-server

you can read about the solution in here:http://stackoverflow.com/questions/2237696/creating-a-process-in-a-non-zero-session-from-a-service-in-windows-2008-server

谢谢大家!

您好,

我想使用剪贴板API(在Delphi)从Word文档中提取图像。我的code工程确定在Windows XP / 2003,但在Windows 2008中的64位这是行不通的。在Win 2008年我得到一个错误说Clipboard.Formats是空的,不包含任何格式。

I am trying to use Clipboard API (in Delphi) to extract images from Word documents.my code works OK in Windows XP/2003 but in windows 2008 64 bit it doesn't work.in win 2008 i get an error saying that Clipboard.Formats is empty and doesn't contain any format.

图片似乎被复制到剪贴板(我可以通过Word中看到它的剪贴板中),但是当我试着问剪贴板格式是什么他有它说,它不具有任何格式。

The image seems to be copied to the Clipboard (i can see it in the clipboard via Word) but when i try to ask the clipboard what format does he have it said it doesn't have any formats.

我怎样才能访问剪贴板上的编程赢2008 / Vista吗?从我所知道的2008年的64位是什么,它​​可能是一个安全问题...

how can i access the clipboard programmatically on win 2008/Vista?from what i know of 2008 64 bit, it might be a security issue...

这里是code片断:

这是怎么我试图将图像复制到剪贴板:

This is how i am trying to copy the Image to the clipboard:

W.ActiveDocument.InlineShapes.Item(1).Select; // W is a word ole object
W.Selection.Copy;

这就是我如何努力将其粘贴。

and this is how i try to paste it.

  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');

在此先感谢,伊泰

Thanks in advance,Itay

推荐答案

AFAIR,看来M $不允许服务与桌面交互(这是需要使用剪贴板)在Win2008的。

AFAIR, appear that M$ doesn't allow services to interact with desktop (which is needed to use clipboard) in Win2008.

这篇关于剪贴板复制粘贴不会在Win Server 2008中/ Vista的64位上的服务工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-31 09:20