以编程方式保存 Acrobat Reader 文件

问题描述 投票:0回答:1

我需要一些有关 Windows 消息的帮助。 下面的代码从 Excel VBA 执行,任何使用 Acrobat Reader DC 打开的 PDF 文件都会出现第一个“另存为”屏幕。但这个屏幕只有按钮,没有处理程序,我无法进入经典的“另存为”屏幕来完成我的代码。

我尝试了 Spy++ 64,但没有发现任何有用的东西。 Spy 7 冻结了 Excel 和 Acrobat Reader,并且 Spy 32 未在我的电脑上运行。有谁知道我可以使用哪些消息来完成此任务?

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
vba acrobat
1个回答
0
投票

终于解决了!

该屏幕是 Acrobat Reader DC 用于保存文件的云服务。我按照下面的说明进行操作,结果成功了:

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

现在我可以使用我发布的代码从 Acrobat Reader DC 调用经典的“另存为”。

© www.soinside.com 2019 - 2024. All rights reserved.