vbaacrobat

Save Acrobat Reader File programmatically


I need some help with windows messages. The code below, executed from Excel VBA with any PDF file opened with Acrobat Reader DC will evoke the first "Save As" screen. But this screen just has buttons without handlers, and I cannot proceed to the classic "Save As" screen to finish my code.

I tried the Spy++ 64 and did not find anything helpful. The Spy 7 is freezing both Excel and Acrobat Reader, and Spy 32 is not running in my PC. Does any body knows which messages I can use to accomplish this?

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

Solution

  • Solved, finally!

    That screen was the Cloud service of Acrobat Reader DC for saving files. I followed these instructions below and it did the trick:

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

    Now I can use the code I posted to invoke the classic "Save As" from Acrobat Reader DC.