如何使用Word文档中的AUTO IT模拟粘贴(CTRL + V)

时间:2014-12-14 15:33:51

标签: autoit

目标 -

  1. 使用AutoIy
  2. 打开目标应用
  3. 打开已打开的应用程序的打印屏幕(ALT + PRTSCREEN)(步骤1)
  4. 打开新的word文档
  5. 将屏幕截图粘贴到word文档
  6. 问题: 我能够完成前两步,但是我无法将屏幕截图粘贴到Word文档中。

    根本原因

    我可以使用SEND("!{PRINTSCREEN}")打开打印屏幕并使用UDF _WORD_DOCADD打开word文档,但我无法从剪贴板粘贴。问题是,当我使用WinWaitActive激活文档时,文档仍然不活动,因此SEND(" ^ V")无效。

2 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。接下来的步骤是 -

  1. 模拟ALT + PRNTSCRN
  2. 打开剪贴板
  3. 来自Clipboard的GetData作为BITMAP
  4. 使用GDIPLUS_IMAGE_SAVETOFILE
  5. 将数据保存为JPG
  6. 使用DOCADD打开新文档,使用_Word_DocPictureAdd将图像保存为word文档。

答案 1 :(得分:0)

您使用发送错误发送Ctrl + V.使用国会大厦V,它将被AutoIt解释为Ctrl + Shift + V(有关详细信息,请参阅帮助文件)。相反,您要使用的是Send("^v")

WinWaitActive不会激活文档,只是等待它变为活动状态,使用WinActivate激活文字。

粘贴的正确方法是使用com对象,例如:$oWord.Activedocument.Range.paste。这将在没有单词活跃或可见的情况下起作用。

此外,屏幕截图比发送Alt + Printscreen更好。

所有这些步骤都有很好的记录,并且之前已经多次完成。