以编程方式保存 Acrobat Reader 文件

Save Acrobat Reader File programmatically

我需要一些有关 windows 消息的帮助。 下面的代码,从 Excel VBA 执行,任何用 Acrobat Reader DC 打开的 PDF 文件将唤起第一个 "Save As" 屏幕。但是这个屏幕只有没有处理程序的按钮,我无法继续使用经典的 "Save As" 屏幕来完成我的代码。 我尝试了 Spy++ 64,但没有发现任何有用的东西。 Spy 7 正在冻结 Excel 和 Acrobat Reader,而 Spy 32 不在我的 PC 中 运行。有没有人知道我可以使用哪些消息来完成此操作?

Declare PtrSafe Function PostMessage Lib "USER32.dll" Alias "PostMessageA" (ByVal handler As Long, ByVal mssge As Long, ByVal hword As Long, lword As Any) As Long

Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA"(ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long

Sub evoke_saveas()
    a = FindWindow("AcrobatSDIWindow", vbNullString)
    PostMessage a, &H100, 1, 0
    PostMessage a, &H6, 1, 0
    PostMessage a, &H111, &H1776, 0
end sub

终于解决了!

那个画面是AcrobatReaderDC的云服务,用来保存文件。我按照下面的这些说明进行操作,它成功了:

https://forums.adobe.com/thread/1815625

现在我可以使用我发布的代码从 Acrobat Reader DC 调用经典 "Save As"。