如何使用C ++将键击发送到应用程序

时间:2010-10-10 05:40:51

标签: c++ windows acrobat keystroke

我正在尝试制作一个程序,使用Adobe Acrobat Reader打开Acrobat文件,并自动将它们保存在文本文件中。 我希望我的程序做的是:

  • 打开pdf
  • 发送 Alt + 标签 //移至acrobat标签
  • 发送 Alt + F //打开文件
  • 发送向下 向下 向下 向下(4次)//选择“另存为文本”选项
  • 发送输入 //保存

我正在使用Windows操作系统。 有人可以帮我解决一下这个问题吗?

我的目标是自动将大约2500个pdf文件的标题和作者保存在数据库中,您建议的更好的方法是什么?这就是我想出来的。

4 个答案:

答案 0 :(得分:0)

当您执行这些操作时,您将要使用Spy ++并观察传递给窗口的消息(请注意,使用Acrobat打开PDF并抓取Window句柄是不同的操作)。从那里,看看:

http://msdn.microsoft.com/en-us/library/ms644950(VS.85).aspx

如果你不习惯它并且脆弱,那么Win32消息传递是很困难的,正如@Alf所提到的那样。我建议你尝试另一种方法,但是如果你谷歌“win32 sendmessage”或“win32 sendkeys”应该让你开始。

答案 1 :(得分:0)

一切事,

1)模拟击键以与另一个应用程序交互是非常错误想法。你最好找到能做同样事情的API。

如果您还没有改变主意,请继续阅读......

2)对于保存,为什么不使用Ctrl+S保存,Ctrl+O打开。我确定你也会找到其他人的直接捷径。

这是Project可能会有所帮助。

答案 2 :(得分:0)

试试AutoIt。从它的网站:

“AutoIt是一种免费的Windows自动化语言。它可用于编写大多数基于Windows的简单任务。”

答案 3 :(得分:0)

您可以使用SendMessage API将鼠标和键盘消息发送到窗口,也可以使用模拟实际硬件事件的sendinput。我会同意另一个人,使用AutoIT